МОДУЛЬ «КЛИКЕР» И МОДУЛИ, РАБОТАЮЩИЕ С ЭКРАНОМ

Модуль «Кликер»

Модуль «Кликер» предназначен для записи последовательности действий, выполняемых пользователем, а именно кликов по определенным местам экрана и нажатий кнопок на клавиатуре или мыши. С помощью этого модуля можно производить интеграции между самыми разными программами, так как он точно имитирует действия пользователя, то есть, если Вы сможете это сделать, то это сможет сделать и «Кликер».

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

Создание макроса

При открытии модуля «Кликер» появится диалоговое окно «Запись действий макроса», состоящее из трех элементов – кнопки «Начать запись», области, в которой будут отображены записанные действия, и кнопки «Сохранить».

Рис. 1. Запись действий макроса

По нажатию кнопки «Начать запись» программа переходит в режим ожидания нажатия кнопки «TAB», по которой открывается окно создания действия (команды).

Рис. 2. Создание команды

В открывшемся окне происходит настройка действия (описание всех возможных действий будет дано ниже). По завершению создания команды и нажатию кнопки сохранить, новое действие будет добавлено в макрос.

Рис. 3. Добавление команды

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

Рис. 4. Изменение порядка команды

Кнопка с изображением крестика, расположенная между стрелками, предназначена для удаления действия из списка команд.

Для сохранения макроса необходимо нажать на кнопку «Сохранить».

Создание команды

Окно создания команды состоит из статичных и изменяющихся полей. Статичными являются такие поля, как «Действие», «Пауза» и «Примечание».

Статичные поля

Действие

Поле «Действие» состоит из перечня доступных действий для записи макроса – нажатие кнопок мыши и клавиатуры, наиболее часто встречающиеся сочетания кнопок (скопировать, вставить). Далее будут приведены все действия, доступные в модуле.

Пауза

Поле «Пауза» предназначено для создания эффекта ожидания после выполняемой команды. Значение указывается в миллисекундах.

Например, после нажатия на иконку браузера роботу следует подождать несколько секунд, пока браузер запустится и будет готов к работе – в данном примере в команде открытия браузера (кликнуть мышкой по его иконке) в поле «Пауза» следует написать некоторое значение, например, 5000, т.е. 5 секунд.

Примечание

Поле «Примечание» позволяет писать комментарии, чтобы не запутаться в командах.

Поля, появляющиеся только при определенных действиях

Переключатели «Изображение», «Координаты» и «Селекторы»

При создании действий, связанных с кликом или наведением мыши, вам предлагается выбрать, куда кликать – по определенным координатам или по изображению. Если программа, с которой вы работаете, статичная и не меняет расположение своих кнопок, то можно воспользоваться кликом по координатам. Тогда возникает вопрос, как рассчитать координаты? Все очень просто – при нажатии кнопки «TAB» нужно располагать мышь ровно в том месте, куда следует нажать. В диалоговом окне создания команды координаты уже будут заполнены.

Если программа может менять расположение её элементов, то настоятельно рекомендуем использовать клик по изображению. Для этого нажмите на переключатель «Изображение».

Рис. 5. Создание команды

При изменении переключателя изменится нижняя часть окна – появятся кнопки «Выбрать изображение», «Выделить изображение» и поле для ввода «Процент совпадения».

Изображение, по которому потребуется кликнуть для выполнения действия, можно настроить двумя способами:

1) загрузить имеющееся изображение, нажав на кнопку «Выбрать изображение»

2) выбрать фрагмент снимка окна, в котором будет воспроизводиться действие, с помощью кнопки «Выделить изображение». После нажатия на кнопку студия сделает снимок экрана и предложит вам выбрать фрагмент получившегося изображения.

При использовании клика по изображению, обратите внимание на то, что, если на экране таких изображений будет несколько, действие будет применено к первому найденному!

Поле «Процент совпадения» необходимо для случаев, когда искомое изображение может немного отличаться от того, что может быть в реальности (например, наличие выделения вокруг кнопки, если она выбиралась ранее, и отсутствие такого выделения). В подобных случаях уменьшайте процент совпадения до тех пор, пока изображение не будет находиться и в том, и в другом случае. Однако если процент совпадения уменьшить слишком сильно, модуль может найти то, что не планировали искать.

Рис. 6. Пример отличия искомого изображения от действительного

Поля «Количество попыток» и «Пауза между ошибками» предназначены для случаев, когда программа не смогла найти заданное ей изображение. Вы можете указать, сколько раз следует пытаться искать требуемое изображение и сколько секунд ждать между попытками. Например, после запуска браузера нужно нажать на кнопку с иконкой «Плюсик» – создание новой вкладки. Если браузер будет загружаться слишком долго, больше 5-ти секунд (это время указано в паузе команды открытия браузера), тогда программа начнёт искать «плюсик», которого еще нет. Затем программа подождет указанное ей количество секунд между попытками и попробует снова. Как только изображение будет найдено, программа подождет то количество секунд, которое указано в поле «Пауза» данной команды, и перейдет к следующей.

Последний вариант поиска места для наведения мыши – «Селекторы». Этот вариант считается самым надежным, но поддерживается узким кругом программ. Селекторы Windows позволяют находить путь к элементу на экране используя не просто координаты или изображение, а путь относительно родительского компонента экрана с использованием специальной разметки. Они работают с системой компьютера, некоторыми desktop-приложениями. Использование подобно работе с координатами – необходимо навестить на искомый элемент и вызвать окно настройки действия по кнопке «TAB». При переключении настроек на «Селекторы», путь до элемента уже будет введен.

Рис. 7. Создание команды через селекторы Windows

Прокрутка мыши

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

Во всех полях окна создания команды возможно использование переменных.

Описание действий, доступных в модуле

Действие «Кликнуть мышкой»

Основное действие модуля – нажатие левой кнопкой мыши по указанным координатам или изображению.

Действие «Кликнуть мышкой дважды»

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

Действие «Кликнуть правой кнопкой мыши»

Клик правой кнопкой мыши, например, по приложению на рабочем столе, чтобы открыть его контекстное меню.

Действие «Кликнуть колесиком мыши»

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

Действие «Прокрутка мыши»

Прокрутка колесом мыши вниз или вверх по странице. Здесь координаты играют роль того, где будет находиться курсор при прокрутке колеса, так как ползунков на экране может быть несколько. Для прокрутки экрана вниз в поле «Прокрутка мыши» должно быть введено отрицательное значение (-150), вверх - положительное (150).

Число прокрутки измеряется в количестве прокруток колесом мыши.

ПРИМЕР.

Для прокрутки вниз конкретного ползунка необходимо навести на него курсор, нажать клавишу «TAB» на клавиатуре, выбрать действие «прокрутка мыши» и заполнить поле «Прокрутка мыши», как показано на рисунке 8:

Рис. 8. Пример настройки команды

Действие «Ввести текст»

Данное действие вводит текст, который записан в поле «Текст». Поле, куда вводится текст, должно быть выделено (должен быть фокус, стоять каретка).

В некоторых программах необходим специфичный ввод текста – в конкретной кодировке. В подобных случаях следует выбрать кодировку из предложенных в выпадающем списке «Использовать кодировку», или указать свою. Текст может лежать в переменной и быть скопированным из какой-либо программы, использующей конкретную кодировку. В таком случае, при вставке скопированного текста в другую программу, необходимо сначала считать его в кодировке исходной программы. Кодировка исходной программы вводится или выбирается в поле «Начальная кодировка». Заполнение этих полей необязательно.

Флажок «Использовать WinInput» позволяет включить режим более корректного и быстрого ввода текста, но он может не поддерживаться некоторыми программами. Его использование необязательно.

Пример заполнения действия:

Рис. 9. Пример заполнения

Действие «Нажать кнопку»

Имитирует нажатие клавиши клавиатуры. Необходимую клавишу следует выбрать в выпадающем списке «Кнопка». В списке предложены все возможные клавиши, которые могут присутствовать как на простых, так и на расширенных клавиатурах (изменение громкости звука, запуск/остановка музыки и другие нестандартные кнопки).

Рис. 10. Действие «Нажать кнопку»

Действие «Нажать две кнопки»

Имитирует нажатие сочетания двух клавиш клавиатуры, например CTRL+A – выделение всего текста в поле. Необходимые кнопки выбираются в двух выпадающих списках «Кнопка». Список кнопок тот же, что и в действии «Нажать кнопку».

Рис. 11. Действие «Нажать две кнопки»

Действие «Скопировать»

Имитирует нажатие сочетания клавиш клавиатуры CTRL+C. Копирует выделенное заранее значение в буфер обмена и записывает его, при необходимости, в переменную, указанную в поле «Записать в». Данное поле не обязательно к заполнению. Ввод переменной начинается с символов «v.».

Рис. 12. Действие «Скопировать»

Действие «Вставить»

Имитирует нажатие сочетания клавиш клавиатуры CTRL+V. Вставляет в выбранное поле значение из буфера обмена.

Действие «Пока не пропадет изображение»

Ожидает отсутствия заданного изображения на экране в течение времени, дающегося на обнаружение ошибки (значение поля «Кол-во попыток» умноженное на значение поля «Пауза между ошибками»).

Модуль «Поиск изображения»

Модуль «Поиск изображения», в основном, используется в связке с модулем «Кликер». Его задача – определить, существует ли на текущем экране заданное изображение, и если да, то вернуть координаты его центра.

Интерфейс модуля

Окно модуля выглядит следующим образом:

Рис. 13. Окно модуля

Кнопки «Выбрать изображение» и «Выделить изображение» позволяют выбрать изображение для поиска.

Поле «Координата x». В поле вводится переменная (начиная с символов «v.»), в которую будет записана координата x искомого изображения, если оно найдется.

Поле «Координата y». Аналогично полю «Координата x», в данном поле указывается переменная, в которую будет записана координата y.

Поле «Результат». В поле вводится название переменной, в которой будет итоговый результат поиска изображения (после использования всех попыток его найти». Результирующее значение будет представлено в виде строки: «true» - найдено, «false» - не найдено.

Поля «Кол-во попыток», «Пауза» и «Процент совпадения» аналогичны полям модуля «Кликер».

Поле «Кол-во попыток». В поле указывается количество попыток поиска изображения.

Поле «Пауза» предназначено для указания паузы между попытками поиска в миллисекундах.

Поле «Процент совпадения» - насколько сильно совпадает изображение, которое будет искаться, с фрагментом изображения на текущем экране. Вводится число от 0 до 100, чем больше, тем больше должно быть сходства между изображениями.

Модуль «Поиск изображений»

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

Интерфейс модуля

Интерфейс этого модуля очень похож на интерфейс модуля «Поиск изображения», но в нем вместо полей «Координата X», «Координата Y» и «Результат» только одно поле – «Переменная», а также появилось поле «Минимальная дистанция».

Рис. 14. Окно модуля

В поле «Переменная» вводится название переменной с символов «v.», в которую запишется результат поиска.

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

Поле «Пауза» предназначено для указания паузы между попытками поиска в миллисекундах.

В поле «Процент совпадения» вводится значение от 0 до 100, указывающее, насколько сильно совпадают изображение, которое будет искаться, с фрагментом изображения на текущем экране. Чем больше число, тем сильнее они должны совпадать.

Поле «Минимальная дистанция» заполняется числом, указывающим, какое минимальное количество пикселей должно быть между двумя одинаковыми изображениями. В некоторых задачах может быть потребоваться отсекать изображения, которые расположены достаточно близко друг к другу и получать только первое из этих изображений (начиная с верхнего левого угла). Обратите внимание, если это расстояние поставить совсем маленьким (не менее 5 пикселей) или равным 0, то одно изображение может быть найдено несколько раз!

Выходные данные

В указанную переменную будет записан список объектов, количество которых будет равно количеству найденных изображений на экране. Каждый объект соответствует найденному изображению. Для обращения к конкретному изображению списка необходимо указывать его номер (нумерация с 0) в квадратных скобках после названия переменной, например v.listImages[0].

Каждый объект содержит три поля: «x», «y» и «similarity». В поле «x» содержится координата x выбранного изображения, в поле «y» - координата y, а в поле «similarity» - процент совпадения найденного изображения с искомым.

ПРИМЕР.

Пусть мы хотим с помощью робота найти количество одинаковых изображений, например, непрочитанных писем с Яндекс-почты, которые выделены небольшим синим кружочком около письма:

Рис. 15. Пример

Для этого создадим действие «Поиск изображений» и выберем в нем в качестве искомого изображения эту синенькую точку:

Рис. 16. Настройка действия

Для нажатия на каждую такую точку и прочтения сообщений, необходимо добавить цикл по количеству изображений, и в каждому шаге цикла нажимать на координаты v.listImages[v.i].x и v.listImages[v.i].y, где v.i – текущий шаг цикла.

Для определения количества элементов массива можно воспользоваться методом языка JavaScript – v.listImages.length.

Модуль «Создать скриншот»

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

Окно модуля состоит из двух полей:

Поле «Сохранить в папку» должно содержать путь до папки, в которую будет сохранен скриншот экрана. По кнопке папки в поле вызывается диалог выбора директории;

В поле «Имя файла» должно быть название скриншота. Если расширение не будет указано, то изображение будет сохранено в формате png.

Рис. 17. Окно модуля «Создать скриншот»

Модуль «Получить активное окно»

Данный модуль получает название активного окна и записывает его в переменную. Он помогает определить, какая программа является активной на данной момент, что упрощает работу с модулем «Кликер». Модуль позволяет исключить множество ошибок при работе кликерных роботов.

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

Рис. 18. Пример заполнения модуля «Получить активное окно»

Пример переменной в результате заполнения модулем:

Рис. 19. Результат работы модуля