Что нового

[Автоматизация] Как организовать ожидание появления цвета в области в цикле?

Teacher

Новичок
Сообщения
33
Репутация
0
У меня есть такой код:
Код:
HotKeySet("{F4}", "Start")
HotKeySet("{ESC}", "_Exit")
While 1
   Sleep(350)
   WEnd
Func Start()
   While 1
	$pos1 = PixelSearch(791, 536, 837, 649, 0x008000)
	If IsArray($pos1) = True Then
		 MouseMove(1136, 712)
		 MouseClick("left")
		 Sleep(1000)
		 MouseMove(37, 177)
		 MouseClick("left")
		 PixelSearch(791, 536, 837, 649, 0x008000)
	 EndIf
	$pos2 = PixelSearch(791, 536, 837, 649, 0xFF0000)
	 If IsArray($pos2) = True Then
		 MouseMove(1036, 712)
		 MouseClick("left")
		 Sleep(1000)
		 MouseMove(165, 171)
		 MouseClick("left")
	EndIf
  WEnd
EndFunc
	  
	  Func _Exit()
		 Exit
	  EndFunc

Мне необходимо после появления красного цвета в определенной области, совершить нажатие мышью, после чего проверять эту же область на изменение красного цвета на зеленый, после чего совершить еще нажатие мышью, после чего проверять эту же область снова на наличие красного цвета, и т.д....Как это можно реализовать? Мой код не работает данным образом.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Teacher [?]
Как это можно реализовать
Код:
HotKeySet("{F4}", "Start")
HotKeySet("{ESC}", "_Exit")

While 1
  Sleep(350)
WEnd

Func Start()
  While 1
    WaitColor(0x008000)
    MouseClick("left", 1136, 712)
    Sleep(1000)
    MouseClick("left", 37, 177)
    WaitColor(0xFF0000)
    MouseClick("left", 1036, 712)
    Sleep(1000)
    MouseClick("left", 165, 171)
  WEnd
EndFunc

Func WaitColor($Color)
  Do
    Sleep(10)
    PixelSearch(791, 536, 837, 649, $Color)
  Until Not @error
EndFunc

Func _Exit()
  Exit
EndFunc
 
Автор
T

Teacher

Новичок
Сообщения
33
Репутация
0
Очень благодарен! Спасибо большое :laugh:
 
Верх