Author Topic: определить цвет пикселя на 2 мониторах  (Read 922 times)

0 Members and 1 Guest are viewing this topic.

cheremburum

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Люди помогите, ломаю голову уже несколько дней. У меня ноутбук и к нему подключен обычный монитор. На обоих запущены несколько идентичных окон. Нужно определить цвет пикселя и при совпадении сделать клик. Так вот на обычном мониторе все отлично срабатывает, а на мониторе ноутбука не находит нужный цвет. Пробовал и  пиксель искать, и скрин картинки делать, и цветокоррекцию ни чего не помогает. Вообще заметил, что когда водишь курсором по монитору ноутбука, цвета определяются не правильно. Наводишь на красный, показывает синий, наводишь на синий показывает какой то коричневый.  Не пойму в чем прикол.

Для поиска использовал код шаблона. Как уже писал на обычном мониторе находит цвет, на ноутбуке нет.
Code: [Select]
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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Масштабирование в винде должно быть установлено на 100%.

cheremburum

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Спасибо. все заработало. Так и знал что все решается просто. Вот только теперь прийдется все координаты переписать. Но главное что работает.