Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: hunter on October 18, 2017, 02:26:44 AM

Title: Отследить движение мыши
Post by: hunter on October 18, 2017, 02:26:44 AM
Доброго суток всем.

Столкнулся с вопросом: как выполнить действие после движения мыши? То есть как подставить в условие IF что мышь изменила координаты? Заранее спасибо!
Title: Re: Отследить движение мыши
Post by: Oraven on October 18, 2017, 07:45:20 AM
Code: (clickermann) [Select]
$sav_x = $_xmouse // Сохраняем координату
$sav_y = $_ymouse
WHILE(($sav_x = $_xmouse)&($sav_y = $_ymouse)) // Цикл сдерживает выполнение пока мышь не изменит координату
   WAITMS(30)
END_CYC

// Далее действие
Title: Re: Отследить движение мыши
Post by: Vint on October 18, 2017, 07:58:22 AM
Почему не AND ?
Title: Re: Отследить движение мыши
Post by: Vint on October 18, 2017, 08:23:27 AM
Ну от края до края вряд ли доведёт, но сдвинет на 3 пиксела и будет недоумевать.
Title: Re: Отследить движение мыши
Post by: Oraven on October 18, 2017, 09:26:10 AM
Да конечно там нужно И. Исправил.
Title: Re: Отследить движение мыши
Post by: hunter on October 18, 2017, 05:21:39 PM
Спасибо за ответ. Простите но я видимо не правильно выразился и дал не совсем точные вводные. Несомненно, решение предоставленное Вами работает, но необходимо отследить именно движение мыши а не положение курсора. В приложении курсор отсутствует. И необходимо именно через IF, ибо логика такова - скрипт выполняется и если происходит движение мыши, то происходит остановка определенных действий и т.д.
Title: Re: Отследить движение мыши
Post by: Oraven on October 18, 2017, 08:31:07 PM
Подозреваю что здесь нужно использовать поток который параллельно основному выполнению будет отслеживать текущую координату курсора. Ну а остальное, все зависит от конкретного скрипта, ведь его можно написать очень по разному.
Title: Re: Отследить движение мыши
Post by: Oraven on October 18, 2017, 08:37:04 PM
Вот пример, основной поток пишет в лог текст раз в 5 секунд. А дополнительный параллельный поток "watch" следит за курсором каждые 30 миллисекунд проверяя его положение, и как только ты двинешь мышкой запищит системный динамик.

Code: (clickermann) [Select]
LOGWRITE ("Выполняю скрипт")
WAIT(5)

THREAD(watch, 1)
   $sav_x = $_xmouse
   $sav_y = $_ymouse
   WHILE(($sav_x = $_xmouse)&($sav_y = $_ymouse))
      WAITMS(30)
   END_CYC
   BEEP(800,200)
END_THREAD