Код:
AdlibRegister("CheckIt", 1000)
HotKeySet("{F4}", "Start")
HotKeySet("{ESC}", "_Exit")
Global $Checker = False
While 1
Sleep(350)
WEnd
Func Start()
While 1 ; <= начало цикла
$a1 = PixelSearch(55, 157, 233, 201, 0xFF0000)
If IsArray($a1) = True Then
MouseClick("left", 822, 630, 1, 0)
Sleep(2000)
$new1 = PixelSearch(1055, 382, 1252, 418, 0x0084FF)
If IsArray($new1) = True Then
MouseMove($new1[0], $new1[1], 1)
MouseClick("left")
Sleep(300)
WaitColor(0x00FF00)
If Not $Checker Then MouseClick("left", 958, 620, 1, 0)
EndIf
EndIf
$a2 = PixelSearch(55, 157, 233, 201,0x00FF00)
If IsArray($a2) = True Then
MouseClick("left", 959, 622, 1, 0)
Sleep(2000)
EndIf
$new1 = PixelSearch(1055, 382, 1252, 418, 0x0084FF)
If IsArray($new1) = True Then
MouseMove($new1[0], $new1[1], 1)
MouseClick("left")
Sleep(300)
WaitColor(0xFF0000)
If Not $Checker Then MouseClick("left", 822, 630, 1, 0)
EndIf
If $Checker Then $Checker = False
WEnd ; <= конец цикла
EndFunc
Func WaitColor($Color)
Do
PixelSearch(55, 157, 233, 201, $Color)
Until Not @error Or $Checker
EndFunc
Func CheckIt()
$close = PixelSearch(1220, 327, 1248, 351, 0xCCCCCC)
If IsArray($close) = True Then
Sleep(400)
MouseClick("left", 1195, 479, 1, 0)
Sleep(400)
$Checker = True
EndIf
$eror = PixelSearch(797, 500, 851, 519, 0x404040)
If IsArray($eror) = True Then
MouseClick("left", 1150, 479, 1, 0)
$Checker = True
EndIf
EndFunc
Func _Exit()
Exit
EndFunc
Это весь код программы. Грубо говоря есть элемент который меняет свой цвет: зеленый - красный - зеленый - красный...и.т.д...
При появлении зеленого цвета должен происходить клик мышью на кнопку, сначала на одну, (сонн 2 секунды) потом на другую и далее программа ждет появления другого цвета (тобишь если был красный - совершили нажатие по одной кнопке, если зеленый - то совершили нажатие по другой кнопке). и.т.д...
Я заметил какой - то странный баг, или что это, я не пойму. Бывает так, что после запуска программы, она видит пиксель например красный и совершает первый MouseClick 2 раза (так бывает не всегда!). Бывает что после запуска, она исполняет все нормально с одним щелчком.
(Func CheckIt() - это независимая функция которая срабатывает отдельно при появлении цвета в другой координате.) Не понимаю. В коде вроде бы все верно, но бывает первый раз щелкает 2 раза, а не один. Кто знает, что это может быть? :-\