Author Topic: Отследить движение мыши  (Read 2303 times)

0 Members and 2 Guests are viewing this topic.

hunter

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Отследить движение мыши
« on: October 18, 2017, 02:26:44 AM »
Доброго суток всем.

Столкнулся с вопросом: как выполнить действие после движения мыши? То есть как подставить в условие IF что мышь изменила координаты? Заранее спасибо!

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Отследить движение мыши
« Reply #1 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

// Далее действие
« Last Edit: October 18, 2017, 09:24:17 AM by Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Отследить движение мыши
« Reply #2 on: October 18, 2017, 07:58:22 AM »
Почему не AND ?


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Отследить движение мыши
« Reply #3 on: October 18, 2017, 08:23:27 AM »
Ну от края до края вряд ли доведёт, но сдвинет на 3 пиксела и будет недоумевать.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Отследить движение мыши
« Reply #4 on: October 18, 2017, 09:26:10 AM »
Да конечно там нужно И. Исправил.

hunter

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Отследить движение мыши
« Reply #5 on: October 18, 2017, 05:21:39 PM »
Спасибо за ответ. Простите но я видимо не правильно выразился и дал не совсем точные вводные. Несомненно, решение предоставленное Вами работает, но необходимо отследить именно движение мыши а не положение курсора. В приложении курсор отсутствует. И необходимо именно через IF, ибо логика такова - скрипт выполняется и если происходит движение мыши, то происходит остановка определенных действий и т.д.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Отследить движение мыши
« Reply #6 on: October 18, 2017, 08:31:07 PM »
Подозреваю что здесь нужно использовать поток который параллельно основному выполнению будет отслеживать текущую координату курсора. Ну а остальное, все зависит от конкретного скрипта, ведь его можно написать очень по разному.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Отследить движение мыши
« Reply #7 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