Анализ экрана в Кликерман

Описанные ниже функции внедрены Clickermann начиная с версии 3.1. С их помощью можно видеть то, что происходит на экране. То есть они образуют как бы глаза программы.

SCREENSHOT — снятие скриншота экрана. Скриншот помещается в подпапку screens папки программы в формате bmp. Всего в этой папке может находиться до 9999 файлов.

GETSCREEN — похожая на предыдущую функция, но она помещает снимок экрана в память программы, а не на жесткий диск.

IF_PIXEL(X,Y, ЦВЕТ) — если точка [X,Y] имеет указанный цвет, то выполняются инструкции между IF_PIXEL и END_IF
Имеется и функция для отрицательного анализа – IF_NOT_PIXEL.

IF_PIXEL_IN(X1, Y1, X2,Y2, ЦВЕТ) — похожая на предыдущую функция, но работает в случае, когда координаты нужного пикселя заранее неизвестны. Например, когда объект двигается. Производит поиск в заданной области (X1, Y1, X2,Y2) первого попавшегося пикселя нужного цвета. Координаты найденного пикселя помещаются в системные переменные $_return1 (для Х) и $_return2 (для У). Используя эти переменные вы получите точку, которую искали.

Инструкция использует для поиска прямоугольную область экрана, где верхняя левая точка прямоугольника задается через X1,Y1, а правая нижняя соответственно через X2,Y2.

Это очень ресурсоемкая функция, которая существенно задерживает сценарий. Для сканирования экрана 1024х768 уходит около 6 секунд. Поэтому чем меньше область поиска вы зададите, тем быстрее она будет работать.

Цвет
Цвет задается строковой константой в шестнадцатеричном виде. #000000 – это черный цвет, а #ffffff – белый цвет. А, например, #0000FF – синий цвет. Значение цвета для точки можно узнать в редакторе сценария. Он показывает значение для точки под курсором.

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

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

Пример скрипта для анализа пикселей. Этот фрагмент делает снимок экрана, анализирует его в двух точках. Если они соответствуют цвету #F23A41, в эти точки осуществляется клик.


GETSCREEN

IF_PIXEL(10,20, #F23A41)
LCLICK(10,20)
END_IF

IF_PIXEL(20,20, #F23A41)
LCLICK(20,20)
END_IF

Понравилась статья? Поделиться с друзьями:
CLICKERMANN

Комментарии:

Добавить комментарий