Ребят помогите в подпрограмму добавить, проверку ушла ли капча, если нет то повторить распознавание 3 раза, если все равно капча не ушла то остановить скрипт. А то случается так, что капча зависает и происходит безостановочное распознавание.
[spoiler]sub(cap4a)
GETSCREEN(450,430, 490,470)
COLORMODE(6, 450,430, 490,470)
IF_PICTURE_IN (450,430, 490,470, "texture\K.bmp", -1, 70) // Капча нашлась
$cap4a = 1
WHILE($cap4a = 1) // цикл распознавания капчи
// Область снимка капчи
$x1 = 285
$y1 = 160
$x2 = 675
$y2 = 280
WAIT(1)
$hwnd = wndFind("AGClient v1.5") // находим окно
LOGWRITE ("AGClient hwnd: ", $hwnd)
TFCLEAR("out.txt")
WAITMS(50)
TFWRITE("out.txt", "0")
waitms(200)
// последовательное задание координат
PostMessage($hwnd, 0x555, 1, $x1)
PostMessage($hwnd, 0x555, 2, $y1)
PostMessage($hwnd, 0x555, 3, $x2)
PostMessage($hwnd, 0x555, 4, $y2)
PostMessage($hwnd, 0x555, 5, 0) // распознать
waitms(200)
$response = 0
WHILE($response = 0)
$response = TFREAD("out.txt", 1)
WAITMS(500)
END_CYC
IF ($response = 1)
$str = TFREAD("out.txt", 2)
LOGWRITE ("Распознано. Ответ: ", $str)
FOR($step=1,$step<4)
$click=STRCUT($str,$step,1)
WAITMS(100)
SWITCH($click)
CASE(1)
LCLICK(350,330)
CASE(2)
LCLICK(475,330)
CASE(3)
LCLICK(600,330)
CASE(4)
LCLICK(350,390)
CASE(5)
LCLICK(475,390)
CASE(6)
LCLICK(600,390)
CASE(7)
LCLICK(350,455)
CASE(8)
LCLICK(475,455)
CASE(9)
LCLICK(600,455)
END_SWITCH
END_CYC
WAITMS(100)
LCLICK(480,520) // отправить
WAITMS(300)
$cap4a = 0 // после ввода выходим из цикла
END_IF
IF ($response = 2)
LOGWRITE ("НЕ распознано. Ошибка!")
WAITMS(300)
END_IF
END_CYC
END_IF
end_sub
[/spoiler]