5
« on: May 17, 2018, 08:30:39 PM »
Люди помогите, ломаю голову уже несколько дней. У меня ноутбук и к нему подключен обычный монитор. На обоих запущены несколько идентичных окон. Нужно определить цвет пикселя и при совпадении сделать клик. Так вот на обычном мониторе все отлично срабатывает, а на мониторе ноутбука не находит нужный цвет. Пробовал и пиксель искать, и скрин картинки делать, и цветокоррекцию ни чего не помогает. Вообще заметил, что когда водишь курсором по монитору ноутбука, цвета определяются не правильно. Наводишь на красный, показывает синий, наводишь на синий показывает какой то коричневый. Не пойму в чем прикол.
Для поиска использовал код шаблона. Как уже писал на обычном мониторе находит цвет, на ноутбуке нет.
GETSCREEN
SCANPXL($ARR_SCAN, 78,282, 120,333, 10211046)
$ARR_NUM = 0
$SHIFT_X = 1 // смещение (кол-во игнор пикселов после найденного)
$SHIFT_Y = 1
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
$X = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
$Y = $ARR_SCAN [$ARR_NUM]
INC($ARR_NUM,1)
IF(($X > $X2) | ($Y > $Y2))
$X2 = $X + $SHIFT_X
$Y2 = $Y + $SHIFT_Y
MOVE($X, $Y) // перемещаем курсор
INC($SCAN_COUNT,1)
LOGWRITE ("X: ", $X, " Y: ", $Y)
WAITMS(100)
END_IF
END_CYC
UNDEFINE($ARR_SCAN)
LOGWRITE ("=====================")
LOGWRITE ("Всего найдено: ", $SCAN_COUNT)
HALT