9
« on: July 01, 2022, 02:16:03 PM »
Вот используемый мной код:
$cap4a = 1
WHILE($cap4a = 1) // цикл распознавания капчи
// Область снимка капчи
$x1 = 673
$y1 = 404
$x2 = 929
$y2 = 469
WAIT(1)
$hwnd = wndFind("AGClient v1.5") // находим окно
LOGWRITE ("AGClient hwnd: ", $hwnd)
HINTPOPUP(STRCONCAT("hwnd: ", $hwnd), "AGClient")
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)
TOCLIP($str) // капчу в буфер
WAITMS (50)
$cap4a = 0 // после ввода выходим из цикла
END_IF
IF ($response = 2)
LOGWRITE ("НЕ распознано. Ошибка!")
WAIT(3)
$repeat01=$repeat01+1
IF($repeat01<5)
WAIT(1)
GOTO(repeat)
ELSE
WAIT(3600)
GOTO(zagruzka)
END_IF
END_IF
END_CYC
WAITMS(200)
В целом код идентичен процитированному выше, убрал только ненужные мне If и ctrl+V.
Посмотрите, пожалуйста, где ошибка - почему не записывает капчу в файл out.txt? Мой код дальше должен считывать из этого файла данные.