Author Topic: Обработчик экрана  (Read 1336 times)

0 Members and 1 Guest are viewing this topic.

MaxSt

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Обработчик экрана
« on: August 27, 2018, 02:29:40 PM »
Если пиксель под курсором изменил цвет сделать даблклик. Вот что мне в голову пришло
Code: [Select]
DEFINE($p1)
DEFINE($p2)
DEFINE($c1)
DEFINE($c2)
WHILE(1)
   getscreen
   $p1 = pxl($_xmouse, $_ymouse)
   $c1 = colorR($p1)
   WAITMS(500)
   $p2 = pxl($_xmouse, $_ymouse)
   $c2 = colorR($p2)
   IF($c1!=$c2)
      DBLCLICK($_xmouse, $_ymouse)
   END_IF
END_CYC
, и получается что если я просто не двигаю мышью и пиксель меняется, то ничего н происходит, а если двигаю мышью, то работает что-то,  что я не так сделал?

P.S как в редакторе сделать код CM
« Last Edit: August 27, 2018, 02:33:34 PM by MaxSt »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Обработчик экрана
« Reply #1 on: August 27, 2018, 02:38:16 PM »
Зачем ты выделяешь красный канал для сравнения. Просто сравнивай полученный цвет.
Code: (clickermann) [Select]
WHILE(1)
    GETSCREEN($_xmouse, $_ymouse, $_xmouse, $_ymouse)
    $p1 = pxl($_xmouse, $_ymouse)
    WAITMS(200)
    GETSCREEN($_xmouse, $_ymouse, $_xmouse, $_ymouse)
    $p2 = pxl($_xmouse, $_ymouse)
    IF($p1 != $p2)
        LCLICK($_xmouse, $_ymouse)
        LOGWRITE($_xmouse, " / ", $_ymouse)
        WAITMS(100)
    END_IF
END_CYC
« Last Edit: August 27, 2018, 02:43:45 PM by Vint »


MaxSt

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Обработчик экрана
« Reply #2 on: August 27, 2018, 09:17:45 PM »
P.S как в редакторе сделать код CM
вот с этого момента поподробней.
на форуме, просто там есть просто кнопка code, я именно для cm не видел

MaxSt

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Обработчик экрана
« Reply #3 on: August 27, 2018, 09:26:47 PM »
Зачем ты выделяешь красный канал для сравнения. Просто сравнивай полученный цвет.
Code: (clickermann) [Select]
WHILE(1)
    GETSCREEN($_xmouse, $_ymouse, $_xmouse, $_ymouse)
    $p1 = pxl($_xmouse, $_ymouse)
    WAITMS(200)
    GETSCREEN($_xmouse, $_ymouse, $_xmouse, $_ymouse)
    $p2 = pxl($_xmouse, $_ymouse)
    IF($p1 != $p2)
        LCLICK($_xmouse, $_ymouse)
        LOGWRITE($_xmouse, " / ", $_ymouse)
        WAITMS(100)
    END_IF
END_CYC
спасибо )

MaxSt

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: Обработчик экрана
« Reply #4 on: August 27, 2018, 09:29:00 PM »
Зачем ты выделяешь красный канал для сравнения
ну я прост не знал что можно так, а в справке только это увидел. к тому же если меняется пиксель, то и красный канал тоже по идее меняться должен, т.е. условие также проходит

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Обработчик экрана
« Reply #5 on: August 28, 2018, 07:25:57 AM »
на форуме, просто там есть просто кнопка code, я именно для cm не видел
Справа вверху офигенный текст с пояснением  :)

Про цвет - не факт. К каждому цвету есть ещё 65534 штуки с таким же каналом красного. Ну и лишние действия.
А главное, не хватало GETSCREEN