Нужна помощь в написании скрипта? Close

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

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

PixelSearch -Autohotkey

Ищет на участке экрана пиксель заданного цвета.

PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Fast|RGB]

Параметры

OutputVarX, OutputVarY

Имена переменных, в которые помещаются координаты X и Y первого найденного пикселя, отвечающего идентификатору цвета ColorID (если не находится соответствий, переменные будут пустыми). Координаты отсчитываются относительно активного окна, если только это не изменено командой CoordMode.

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

X1, Y1

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

Координаты отсчитываются относительно активного окна, если только это не изменено командой CoordMode.

X2, Y2

Координаты X и Y правого нижнего угла прямоугольной области поиска, могут быть выражениями.

Координаты отсчитываются относительно активного окна, если только это не изменено командой CoordMode.

ColorID

Идентификатор цвета в десятичном или шестнадцатеричном формате Синий-Зелёный-Красный (BGR), может быть выражением.

Color ID можно определить, используя приложение Window Spy (доступно из меню в области уведомлений) или через команду PixelGetColor. Например: 0x9d6346

Variation

Число от 0 до 255 включительно. Указывает допустимое отклонение от заданного цвета (диапазон оттенков) для красной, зелёной и синей составляющих (может быть выражением). Этот параметр полезен, если искомый цвет находится в определённом интервале оттенков. Если задать диапазон оттенков 255, все цвета будут отвечать этим условиям. По умолчанию равен 0.

Fast|RGB

Fast: Используется более быстрый метод. Быстрый режим лучше работает с 24 и 32-битными цветами. При быстром режиме просматривается ряд за рядом (сверху вниз) вместо столбца за столбцом. Поэтому, если условиям отвечают несколько пикселей, может быть найден не тот пиксель, что в медленном режиме.

RGB: Значение параметра ColorID будет восприниматься в формате RGB вместо BGR. Другими словами, красная и синяя составляющие меняются местами.

Если присутствуют оба слова- разделяйте их пробелом: Fast RGB.

ErrorLevel

ErrorLevel устанавливается в 0, если цвет в заданной области был найден; 1 - если не был найден; 2 - если возникла проблема, препятствующая проведению поиска.

Примечания

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

Только для медленного режима: По умолчанию поиск начинается с левого верхнего пикселя вниз. Если соответствий не найдено, поиск продолжается в следующей, правой колонке, и т.д. Направление поиска изменится, если поменять местами координаты X1 и X2 в списке параметров.

Так же, если Y1 больше, чем Y2, поиск в каждом столбце пикселей будет начат снизу, а не сверху.

Если область поиска большая и поиск повторяется с большой частотой- может потребляться много времени ЦП. Для повышения быстродействия старайтесь минимизировать область поиска.

Пример

PixelSearch, Px, Py, 200, 200, 300, 300, 0x9d6346, 3, Fast if ErrorLevel MsgBox, Требуемый цвет в заданных границах не найден. else MsgBox, Цвет, отвечающий требованиям, обнаружен в координатах X%Px% Y%Py%.
Автор перевода: ypppu
Источник: http://forum.script-coding.com/viewtopic.php?id=316
Под редакцией ahk-wiki.ru от 21.08.19