Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

25 Апреля 2021
76

Автоматизация однотипных действий, ч.3 .  Подпрограммы и анализ экрана

Всем привет, продолжаем изучать автоматизацию на основе программируемого автокликера.

Часть №1, Интерфейс, простые действия.
Часть №2, Запись действий, циклы, переменные, условия.

Начнём с подпрограмм, что это и зачем они нужны.

Подпрограмма это список действий, который будет часто повторяться в вашей программе, но не обязательно подряд. Например, мы используем такие действия (пока напишем в псевдокоде):

при этом подразумевается, что вам нужно сделать так с множеством страниц, например 20 штук.
Если бы нам нужно было поставить лайки только на одной странице, мы бы обернули действия в цикл и нам бы этого хватило.

Но что если нужно открывать другие страницы, а может, между делом совершать совсем другие действия (публиковать пост, писать комментарии и т.д.) Тогда имеет смысл выделить наш участок кода в отдельную функцию.

SUB(имяФункции) - определяет начало функции, общепринято все функции выносить на самый верх программы, либо выносить в отдельный файл, но это необязательно и больше для красоты, расскажу об этом в одном из следующих постов.

Имя функции определяете вы сами, старайтесь задать такое, чтобы вам было понятно, что делает эта функция, например ставит лайки в вк - VKLikes, ищет в эксель нужную строку - ExcelFindString и т.д.


END_SUB - соответственно обозначает конец вашей подпрограммы(функции).


Теперь вы можете в любой момент вызвать вашу функцию таким образом - имяФункции()


Почему это удобно? Представим, что вам потребовалось ставить лайк не на каждый пост, а на каждый второй, теперь вам придется проходить по всей вашей программе, искать каждый момент где вы ставите лайк и менять там, добавлять ещё одну прокрутку, если же это у вас выведено в отдельную функцию, вам достаточно поменять это один раз в одном месте. Удобно? а то! Ну и отдельный плюс - сокращение вашего кода. Совсем недавно я изменил свой скрипт, изначально я писал его просто как список действий, без подпрограмм, это заняло у меня 2200 строк, после *рефакторинга скрипт стал занимать 700.


*рефакторинг - процесс улучшения кода без внесения новых возможностей.


Также важной возможностью является передача в вашу функцию какого-либо параметра, который менял бы исполнение этой функции в зависимости от значения переменной.

Вот участок моей реальной программы:

Да, ваш скрипт может целиком выглядеть как вызов различных функций, это нормально и даже очень хорошо. Я передаю в функцию TWPersonalPost переменную, которая имеет значение от 1 до 10, в зависимости от этого, функция открывает тот лист Excel с которого мне нужно скопировать информацию:

Тогда в названии вашей программы нужно указать переменную, например SUB(VKlikes, $name)

и внутри подпрограммы с помощью команд IF или SWITCH сделать различные действия в зависимости от значения переменной.


Анализ экрана

Анализ экрана позволяет добавить в вашу программу ту самую вариативность исполнения, программа будет менять исполнение действий в зависимости от происходящего на экране (вот мы и добрались до создания собственного искусственного интеллекта...ну почти)


для этого clickermann представляет нам множество функций, главной из которой является GETSCREEN.


GETSCREEN - делает снимок экрана и помещает его в буфер для анализа, буквально это print screen. Мы можем сделать как снимок всего экрана, так и снимок определенной области, зачем? Ну это немного ускоряет выполнение скрипта, ведь анализировать часть проще чем весь экран. Во вторых на всем экране могут быть похожие элементы или пиксели такого же цвета, которые помешают нам.  Для этого необходимо в скобочках указать координаты двух углов, верхнего правого и нижнего левого. Например так GETSCREEN(649, 473, 883, 631).

Тогда в буфер сохранится выделенный красным криво-прямоугольником участок. Ну например если мы хотим нажать одну из этих зеленых кнопок, и мы знаем что они всегда находятся в этой области.


Хорошо, мы сохранили изображение, как его проанализировать?


IF_PIXEL_IN - ищет пиксель заданного цвета в снимке, и возвращает его координаты. Обязательно нужно указать координаты (если вы сделали снимок области, указываем такие же координаты, что и для GETSCREEN) и цвет искомого пикселя. В коде это выглядит так:

$_return1 \ $_return2 - переменные созданные самой программой, в них лежат координаты (по Х и по Y) для первого найденного пикселя такого цвета в этом участке изображения. Мы можем проделать любые действия с ними, например нажать левой\правой кнопкой мыши, остановить\продолжить исполнение программы и так далее. Для этого нужно поставить эти действия между IF_PIXEL_IN и END_IF которое обозначает конец условия, также как в команде IF.


Откуда мы узнали какой цвет пикселя нам нужно искать? Для этого достаточно навести на нужное место и посмотреть в окно определения цвета clickermann.

Оранжевым изобразил указатель мыши в момент создания этого снимка.


Но нужно быть осторожным, многие сайты меняют цвета кнопок при наведении на них, так и здесь на пикабу, кнопка "картинка" не меняет цвет при наведении, а вот видео и текст меняют и при наведении на них мы увидим цвет:

Как видно, при наведении кнопка побледнела, в отличии от "картинка", кстати @SupportTech, а не баг ли это?))

Получается, чтобы узнать цвет пикселя нам нужно навести на кнопку, но при наведении, цвет меняется, в своё время я немало посидел, над причиной, почему моя программа не находит цвет, когда вот он туточки.

Для этого мы можем пойти простым путём, делаем скриншот экрана одним из следующих способов, в зависимости от вашего просветления:


Ну разве что последний способ не очень подходит, после чего открываем картинку и уже на ней наводим на кнопку и смотрим её цвет:

С помощью этой функции, также можно проверять, открыто ли нужное окно у вас, или ваша программа начинает творить фигню. Например, мы знаем, что Excel выглядит так:

наверху у него всегда цвет пикселя

Теперь мы можем создать проверку, например мы работаем в Excel и браузере, соответственно в браузере сверху нет цвета пикселя Excel, тогда если мы находим такой пиксель - выводим оповещение:

SOUND("имя_файла.wav") - воспроизводит звуковой файл в ваши динамики, давая вам знать о проблеме или например успешном окончании программы. Только .wav файлы. Файл должен находиться в папке с программой clickerman.


Теперь программа позовёт вас, если что-то пойдёт не так и будет ждать. Как вариант можно в действиях указать нажатие левой кнопкой мыши по значку Excel, для его раскрытия и потом ещё одну такую же проверку, в 90% случаев именно из-за лишнего закрытия-открытия окна что-то идёт не так.


Мы разобрали случай, когда цвет пикселя не повторяется на экране, то есть у нас есть только одна кнопка "текст" например, но что, если у нас множество кнопок одного цвета, и цена ошибки слишком высока, как то так:

Тогда следует использовать анализ экрана по совпадению картинки, а поможет нам функция

IF_PICTURE_IN - ищет образец картинки в сохраненном участке изображения. Только файлы bmp формата, пример:

Чтобы повысить вероятность нахождения, можно указать % точности совпадения. Например так:

IF_PICTURE_IN (20,20, 300, 300, "somefile.bmp", 0, 90) тогда, 90% совпадения будет достаточно для запуска действий внутри IF.


Как получить картинку формата .bmp?

Есть два способа, самый точный это командой SCREENSHOTEX - сохраняет участок экрана как отдельный файл в папке с программой.

и второй способ, включаем режим лупы

Теперь смотрим на окно лупы в clickermann и наводим на нужное место, нажимаем ALT + G

и скриншот указанный на экране лупы будет сохранен в папке программы внутри папки screens.

Теперь это изображение мы можем использовать для поиска его при исполнении скрипта.


Мы рассмотрели две основные функции для анализа экрана, по пикселю и по изображению. Вы можете ознакомиться с остальными функциями в справке программы, возможно найдете функцию которая больше подходит вам для исполнения вашего скрипта, но эти две на 95% покрывают все потребности.

Показать полностью 22
15

Что делать если болит живот?

Боли в животе - один из наиболее частых симптомов, с которыми обращаются за медицинской помощью. Однако, практика показывает, что зачастую неверная тактика выбирается даже врачами. Постараюсь рассказать основные моменты, как себя вести и что делать.


В данной статье хочу прояснить основные моменты, без привязки к конкретным заболеваниям. Заболевания мы рассмотрим отдельно в следующих статьях

Разделим нашу статью на две основные части - острые боли и хронические.


Внезапно возникшие боли, резкие, интенсивные требуют немедленно осмотра врачом-хирургом. Нельзя пить обезболивающие! Это может смазать картину заболевания и затруднит постановку диагноза. Исключения составляют спазмолитики (но-шпа, папаверин, дротаверин). Вызывайте скорую медицинскую помощь! Если диспетчер сообщает, что помощь ждать долго - опишите симптомы и узнайте, в какую больницу ехать.


В противном случае можно потерять много времени, а последствия промедлений бывают фатальны


То же самое хочу сказать о тех, кто в первую очередь ищет частную клинику для выполнения УЗИ. Вы можете потерять драгоценное время и точно потеряете деньги, результатом же будет рекомендация вызвать скорую помощь и отправиться в дежурную больницу.


Во время осмотра говорите правду. Ещё ни один пациент с ожирением не признался мне в употреблении жирной пищи - все как один последние несколько лет сидят исключительно на диете, питаются только варёной курицей и кашами на воде.


особая категория пациентов любит перечислять названия органов, которые, по их мнению, находятся в брюшной полости и диагнозы, которые ставили из знакомым. На осмотр много времени не бывает, так что лишней информацией лучше никого не грузить.


Если причина острых болей в животе в 99% случаев устанавливается после осмотра и минимального обследования, то в случае с хроническими болями все не так однозначно.

Главный совет, который я хочу дать - не пытайтесь сами назначать себе исследования! Всегда консультируйтесь с врачом. Если исследование стоит дорого (например, МРТ с контрастом), это не значит, что по результатам вы получите точный диагноз. Лишние исследования это трата денег, пользы для здоровья Вы точно не получите.


И ещё раз призываю - не занимайтесь самодиагностикой и самолечением. Острые и внезапные боли - вызывайте скорую помощь. Хронические боли в животе - лучший путь - это консультация врача-гастроэнтеролога!

Показать полностью
1576

Заметки педиатра [2]

И так, продолжим путешествие в мир новорожденных и чуть-чуть постарше. Сегодня я расскажу вам ещё несколько особенностей, вопросов, с которыми вы столкнетесь при рождении маленького ребенка.

Сразу скажу. Всё описанное здесь – общие ситуации и правила. Все частные случаи, выходящие за рамки написанного, необходимо решать с лечащим врачом.

1. Сон. У новорожденного ребенка нет понятия биоритма, ночного и дневного сна. Он спит тогда, когда хочет; он ест тогда, когда хочет. Нет ничего страшного в том, что ребёнок бодрствует ночью, это абсолютно нормально. Да, зачастую момент не приятен родителям, но повода для паники нет.

Также будьте готовы помогать ребенку засыпать. Нельзя просто так взять и уложить его спать. Нервная система незрелая, возбуждение преобладает над успокоением. Чтобы он уснул, необходимы ритуалы: полежать рядом, попеть колыбельку, погладить по носику, спинке и тп.

Огромная просьба, не спите вместе с маленькими детьми. Огромное количество случаев удушья детей во сне родителями.

2. Будьте готовы к тому, что первые месяцы жизни ребенок будет большее время есть, спать и испражняться. Недавно на Пикабу был пост, что маленькие дети похожи на домашних животных, так вот эту стадию – беспомощного существа – проходит каждый ребенок.

3. Плач. Замерз, жарко, мокро, больно, голодно, хочется к маме на ручки, шумно, хочет писать, хочет какать, на всё это у ребенка лишь одна эмоция – плач. А вы не можете понять, что ему нужно.

Теперь соедините 1, 2, 3 пункт. Это трудно объяснить, в этом трудно помочь, но вам придется искать контакт с вашим ребенком.

4. Для тех, у кого ребенок на грудном вскармливании будет проблемой то, что ребёнок может бросать грудь, плакать, засыпать при кормлении. Просыпаться через час или полтора (раньше средних значений: 3 - 3,5 часа) и опять просить есть. Акт сосания груди – это физическая активность. Это трудно, ребенок устает. Очень часто мамы переживают из-за этого, но увы. Придется малышу вашему учиться кушать, ещё никто пока не умер от того, что часто просил есть и не мог насосать полный объем молока из груди у мамы.

Для тех, у кого ребенок на смеси, рекомендую пользоваться формулой расчета разового объема кормления:

(135 (калорийность молока) * массу (кг) * 100%) разделить на (70*8)

Например, ребенок весит 4 кг при выписке
135*4*100 = 54000
54000/70 = 771 (суточный объем)
771/8 (количество кормлений) = 96 мл ≈ 100 мл

5. Как и акт сосания, акт дефекации требует тренировки. Для того, чтобы покакать, необходимо – расслабить мышцы тазового дна, напрячь мышцы брюшины (нагнетается давление), расслабить анус...в общем, с учётом гипертонуса мышц и отсутствим адекватного развития мышц брюшного пресса, это будет трудно. Малыш будет кряхтеть, тужиться, краснеть, плакать, живот будет напряжённым, но, что важно для нас, в конце концов он закончит это дело своей маленькой победой. Плач сменится спокойствием, напряжённый живот – мягким, кряхтение – милым сопением.

N.B. (Обрати внимание)! Если в стуле у ребенка на постоянной основе кровь или же черный цвет стула, это повод обратиться к врачу. Но не путайте прожилки крови раз через раз с ситуацией, когда кровь постоянно. Когда ребёнок тужится, у него могут лопаться капиляры кишки, от сюда появляется кровь.

6. Какашки малыша – не розы. Они будут пахнуть по всякому. Менять цвет. Менять консистенцию. Запомните одно, если это беспокоит только вас, а ребенок живёт и радуется жизни, то не надо ничего лечить и исследовать. Диагноза "дисбактериоз" не существует. Дисбактериоз – это нарушение соотношения кишечной флоры. Обсеменение кишки бактериями происходит в течении 1-2 месяцев. Это произойдет так или иначе, не надо никаких пробиотиков, не надо никаких анализов на бактерии в кале и так далее.

Но обрати внимание, мама и папа, если у ребёнка пенистый стул, это признак лактазной недостаточности (чаще всего). Тут важно зафиксировать памперс в объективе и показать кому надо (педиатру).

7. Срыгивания после кормления – это норма. В норме у здорового человека есть так называемый "кардиальный сфинктер" пищевода. Вот он.

Он не даёт пище из желудка попасть в пищевод. У новорожденных детей кардиальный сфинктер развит слабо, более того, пищевод короткий и широкий. Пища спокойно может попасть из желудка в ротовую полость.

Профилактика срыгивания. Носить столбиком ребенка 15-20 минут для отхождения воздуха; не давить на живот после еды, не осуществлять какую либо пассивную физическую активность ребенку (начать его одевать, купать, тискать и т.д.) после еды; класть на возвышенную поверхность так, чтобы голова была выше попы.

На что стоит обратить внимания? Когда ребёнок срыгивает почти весь объем съеденной пищи, когда срыгивания больше чем один-два раза за одно кормление, когда это больше похоже на рвоту (выход пищи под давлением на расстояние), когда отсутствуют прибавки в весе.

Ну-с, на этом я закончу сегодня. Как всегда готов читать ваши истории в комментариях, делать заметки для следующих постов.

Показать полностью 3

Fujifilm Instax

Привет всем! Кто-нибудь покупал себе или в подарок instax mini? Хочу взять себе и рассматриваю как идею для подарков двоюродным брату и сестре (15 и 21 год) Поделитесь впечатлениями от использования, может у них есть какие-то классные модели и необычные цвета. Очень интересует, что вы думаете на этот счет :)

1208

Самозащита и права граждан на сравнении США и РФ. Возьмем для примера ограбления или нападения бандитов

В этих странах абсолютно разный подход к пониманию самообороны и к рассмотрению последствий от действий самозащиты. В США, к примеру, проникновение на территорию гражданина позволяет ему защищать себя всеми доступными способами и рассмотрение дел при нанесении ущерба нападающему происходит быстро и в пользу обороняющегося, не говоря уже о том, что его не забирают ни в какие СИЗО и не рассматривают дела по полгода с примененинем карательных мер к оборонявшемуся. Главное условие - это территория, где это происходит. Если это место жительства - обороняющийся прав в суде на 99% всегда, если это неизвестные люди, проникшие с неизвестной целью.

Также учтем свободное приобретение и хранение огнестрельного оружия, вплоть до автоматических винтовок. Любой человек, достигший 21 года, пенсионер, плохой или хороший "ниггер" , плохой или хороший "снежок" может приобрести револьвер, и применить его.

В РФ нет права на ношение и приобретение такого вида оружия для граждан. Короткостволы запрещены. Гладкостволы и нарезное должны быть без патронов и в чехлах при переноске вне мест охоты или стрельб. Ношение их для самообороны  запрещено. Отношение к обороняющемуся в СВОЕМ доме кардинально противоположное. При нанесении ущерба нападающему или проникшему в помещение с неясной целью дело будет рассматриваться так, как будто это произошло на улице или любом другом месте. Нередки случаи, когда при обороне дома защищавшегося приговаривают к реальным срокам заключения и к выплатам компенсаций грабителям или атакующим.

То есть вся разница в том, что правоприменительная практика в РФ ставит целью наказание причинившего урон почти вне зависимости от обстоятельств, а в США учитывается место обороны и обстоятельства вне зависимости от ущерба нападающему. Там - человек и закон, тут - закон и человек. Закон в РФ, а именно ст. 37 УК РФ трактуется очень вольно и правоприменительная практика говорит о странном применении этого закона.


А теперь про BLM и прочие банды. Про проникновение в жилище - все понятно. А что на улице? Не забывайте, что страна США, это вооруженная страна и если эти черные BLM окончательно затеррориризируют какой-нибудь штат, их будут отстреливать и черные и белые, как нападающих бандитов. Вроде бы Флорида идет по пути облегчения способов, типа возможности давить ниггеров автомобилями и стрелять из окна. В принципе, к этому все и идет. США - свободная страна и она себя все-равно отрегулирует, хотя все эти BLM - офигенный перекос в обществе и системе права.

Так... А РФ? Ну, допустим, у вас возник конфликт с какой-нибудь гуманоидной диаспорой Нибирцев (это с планеты Нибиру, если что) и они банально вам угрожают и хотят убить.  Они пришли к вам домой, а вы взяли дедушкин дробовик с ножиком. Чик-чик, и нибирцев нет. К вам приедут ребята с погонами и без разборов вы уедете сначала в клетку а потом надолго в Карелию вплоть до пожизненного. И наплевать, что у вас дома был маленький ребенок и жена.


Примеры? Да вот навскидку https://newsland.com/user/4296648056/content/pitertsa-posadi... , остальные примеры легко гуглятся.


А вы говорите, BLM... США и РФ. Два мира - два разных кефира.

Звучит песня на фоне " Белые ниггеры в белом гетто, но без прав и пистолетов".

UPD. Дополнение #comment_198717588

Показать полностью
253

Помогите найти инструмент или хотя бы его название

10 лет назад было приобретено шило за копейки. Но это было не совсем шило... Оно было толще, сталь значительно упруже, а его законцовка не была острой. Ну и самое главное - оно было повернуто на 90 градусов. Этот инструмент оказался невероятно удобным и нужен был везде так же, как обычная отвертка - поддевать, выковыривать, вытягивать, развальцовывать, протыкать, расковыривать.
5 лет назад я его потерял. Пошел и купил у той же продавщицы еще один такой же.
Сейчас я его испортил, нагревая - метал тут же обмяк и потерял свои свойства (невероятной упругости стали этого инструмента можно памятник поставить - очень удачная была закалка до нагрева)
Пошел на рынок к той же продавщице - больше у нее такого нет и не будет. У других тоже даже близкого к этому инструменту товаров нету. Только кожевенные и обувные шила.
Гугление в интернете по словам вроде "90 градусов инструмент" выдало только один сайт c точно таким же инструментом:

Но его нету у них в наличии. А название товара "Шило-крючок 90 градусов" говорит о том, что продавец так же не знал как это назвать)

В заключение рукодельникам, сервисменам и всем синим воротничкам - если увидите такой инструмент - обязательно берите. Невероятно нужная вещь, без которой я теперь не могу многие бытовые дела делать.

Показать полностью 2
15

ТСЖ и человеческая психология

Уже сравнительно давно в России существует институт ТСЖ. Граждане объединяются и самостоятельно управляют своим домом, производят ремонт и т.д.. Чтобы ТСЖ нормально функционировало нужно избрать председателя. Наивный человек подумает, что быть председателем это почётно, все жильцы твоего дома тебя знают, все уважают. Но человеческая натура весьма многогранна и результат зачастую весьма отличается от предполагаемого. Есть в нашем доме ТСЖ. Быть председателем особо никто желанием не горел, но нашлась одна ответственная женщина, по совместительству знакомая моих родителей, которая решила взвалить это бремя на себя. Подвели её ровно два обстоятельства:

1) норковая шуба, которая была куплена ею уже пару лет назад и одевалась только на праздники, ибо в -30 в ней всё прохладно. Получив ДОЛЖНОСТЬ она решила выглядеть солидно и стала её носить повседневно. Естественно, всем сразу стало понятно, что деньги на шубу она своровала у ТСЖ. Слухи стали быстро распространяться и стали топовой темой для обсуждения у местных пенсионерок.

2) не успела отшуметь история с шубой, как масло в огонь подлил начавшийся у женщины ремонт квартиры. Да, квартира уже давно требовала ремонта и деньги на этот ремонт уже давно потихоньку откладывались. Но раз ремонт начался в период председательствования, то всем стало очевидно, что ремонт делается на украденные деньги.

При этом нормальное содержание дома и придомовой территории никакого значения не имело. Никого она своей добросовестной работой в заблуждение ввести не смогла, всем всё было понятно. Ведь если бы она деньги не воровала, то в каждой квартире уже стоял бы золотой унитаз, а на входе в подъезд жильцов встречал бы учтивый швейцар, который всегда откроет дверь и поможет дотащить вещи до квартиры.

P.S. А недавно моей маме предложили занять место председателя ТСЖ. Почему - то все поборники справедливости и просто бдительные жильцы отказались от такой почетной должности. Мама отказалась. Её упрашивали, обещали повесить её фото на доску позора в случае отказа, до Спортлото только не дошли, слабаки. Не помогло, ведь мы тоже скоро планируем ремонт...

Показать полностью
Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов, волны постов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите