Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Как правильно зациклить проверку (http://forum.oszone.net/showthread.php?t=341196)

EnigmaNN 06-07-2019 18:41 2878487

Как правильно зациклить проверку
 
Приветствую.
Необходимо создать цикл проверки следующего характера:

1. Встаём на тестируемый пиксель
2. Если цвет пикселя соответствует значению, то действие тогда
3. Щелчок мышью по области экрана
4. Проверяем пиксель снова , начиная с п. 1.
5. Конец проверки


Но удалось написать только так

Код:

  Mousemove(-143, 192, 0)
  Sleep(2000)
  if PixelGetColor(-143, 192) = 6698522  Then
          Sleep(2000)
          Mousemove(-196, 390, 0)
          Sleep(5000)
          MouseClick("left", -196, 390, 1, 10)
  Else
          MouseClick("left", 70, 688, 1, 10)
          Sleep(5000)
  EndIf

Скрипт работает, но не повторяет проверку
Не хватает знаний, чтобы достичь нужного. Буду благодарна за помощь

Iska 06-07-2019 21:33 2878504

EnigmaNN, циклическая проверка нуждается в наличии цикла: Language Reference - Loops Statements. В Вашем случае подойдёт как Keyword While...WEnd, так и Keyword Do...Until.

EnigmaNN 07-07-2019 13:49 2878571

Спасибо за ответ
решение было найдено таким способом

Код:

for $i=1 to 200
  Mousemove(-145, 198, 0)
  Sleep(2000)
  if PixelGetColor(-145, 198) = 14332707  Then
          ExitLoop
  Else
          Mousemove(-196, 390, 0)
          Sleep(5000)
          MouseClick("left", -196, 390, 1, 10);
  EndIf
Next


все ли верно в отношении синтаксиса?

Iska 07-07-2019 16:54 2878620

EnigmaNN, если Вам надо проверить ровно 200 раз, то да. Если надо Вам проверять до наступления какого-либо условия (или бесконечно), то нет, пользуйте:
Цитата:

Цитата Iska
В Вашем случае подойдёт как Keyword While...WEnd, так и Keyword Do...Until. »

Проблема в другом. Описанная Вами постановка задачи не соответствует ни первому, ни второму приведённым кодам. В первом коде откуда-то взялась ветвь Else, отсутствующая в постановке задачи, во втором — выход из цикла.


Время: 16:43.

Время: 16:43.
© OSzone.net 2001-