Author Topic: Ждать изменения картинки определенное время  (Read 1163 times)

0 Members and 1 Guest are viewing this topic.

georgmann

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Доброй ночи.
Суть работы скрипта в том, чтобы дождаться изменения картинки в определённой области и продолжить дальнейшие действия.
Проблема в том, что иногда окно, в котором производится поиск, после действия LCLICK(1122,333) зависает и соответственно сравнение двух хешей с заданной области зацикливается до бесконечности.
Вопрос: как сделать, чтобы снятие хеша $hash2 производилось к примеру 2 минуты и если изменений не обнаружено, то повторилось бы действие кода LCLICK(1122,333) после чего продолжилось бы снятие хеша $hash2 и в случае сравнения и обнаружения изменений выполнилось бы дальнейшее действие по скрипту.
Спасибо за помощь.  :)
Часть кода:
Code: [Select]
      GETSCREEN
      $hash1 = PXLCRC(1338,436, 1346,441) // снимаем хеш с области
      WAITMS (100)
      LCLICK(1151,274)
      WAITMS (100)
      KEYDOWN (#CTRL)
      WAITMS (100)
      KEYPRESS(#A)
      WAITMS (100)
      KEYPRESS(#V)
      WAITMS (100)
      KEYUP (#CTRL)
      WAITMS (100)
      LCLICK(1122,333)
      WAITMS (1000)
      skip:
      GETSCREEN
      $hash2 = PXLCRC(1338,436, 1346,441) // снимаем хеш с области
      IF($hash1 = $hash2) // сравниваем
         goto(skip)
      ELSE
         goto(skip1)
      END_IF
      skip1:

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
На гото далеко не уедешь....

Code: (clickermann) [Select]
GETSCREEN
$hash1 = PXLCRC(1338,436, 1346,441) // снимаем хеш с области
WAITMS (100)
LCLICK(1151,274)
WAITMS (100)
KEYDOWN (#CTRL)
WAITMS (100)
KEYPRESS(#A)
WAITMS (100)
KEYPRESS(#V)
WAITMS (100)
KEYUP (#CTRL)
WAITMS (100)

$check = 0
WHILE($check = 0) // цикл клика и сравнения хешей
   LCLICK(1122,333)
   WAITMS (1000)
   $time = $_time_t + 120 // таймер на 2 минуты
   WHILE($time > $_time_t) // цикл сравнения хешей на 2 минуты
      GETSCREEN(1338,436, 1346,441)
      $hash2 = PXLCRC(1338,436, 1346,441) // снимаем хеш с области
      IF($hash1 = $hash2) // сравниваем
         WAITMS(30)
      ELSE
         $time = 0 // если отличаются присваиваем $time значение 0, выходим из цикла хешей
      END_IF
   END_CYC
   IF($time = 0) // если $time равна 0
      $check = 1 // выходим из цикла клика и сравнения хешей
   END_IF
END_CYC

georgmann

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Quote
На гото далеко не уедешь....
Похоже, что так и есть.
Сама программа просто шикарная.
Скрипт работает, правда пока не было возможности увидеть его работу при зависании, но это дело времени.
Благодарю за помощь.  :)