3
« on: July 01, 2014, 03:38:23 AM »
Привет всем еще раз. В прошлый раз я спрашивал, как сделать остановку скрипта, пока капча не распознается.
Сейчас у меня всё работает нормально. Но есть один косяк. Программа AGClient 1.2, иногда не отсылает капчу на сервис антигейта, просто белый квадратик и рядом надпись "отправка...", и так и не отправляется, ждал час.
Помогает лишь перезапуск программы AGClient 1.2 и повторное нажатие на "распознать".
Ниже я предоставлю код, в котором есть цикл и условия.
В цикле ищем картинку, если нашли, выполняем определённый код. Если нет, ждем 2 секунды и проверяем вновь.
Мне нужно сделать так, что бы она проверяла 30-35 секунд(через каждые 2 секунды), если данной картинки не находит то - закрыть программу AGClient 1.2, запустить её вновь, и нажать на "распознать."
Закрыт её и открыть я думаю что сам смогу. Подскажите как сделать интервал до 30-35 секунд??
Помогите мне пожалуйста дописать код, или толкните в правильном направлении.
Код:
getscreen
WAITMS(50)
IF_PICTURE_IN (1263,634, 1353,670, "saoi.bmp") // если вылезла капча
WAITMS(100)
BEEP(800,200) // проиграть звук
HINTPOPUP("Íà÷èíàåòñÿ ðàñïîçíîâàíèå êàï÷è", "SAOi MESSAGE") // сообщение
$x1 = 1141 // координаты капчи
$y1 = 613 // координаты капчи
$x2 = 1256 // координаты капчи
$y2 = 669 // координаты капчи
$hwnd = wndFind("AGClient v1.2") // ищем окно AGClient v1.2
PostMessage($hwnd, 0x555, 1, $x1) // передаем координаты капчи в AGClient v1.2
PostMessage($hwnd, 0x555, 2, $y1) // передаем координаты капчи в AGClient v1.2
PostMessage($hwnd, 0x555, 3, $x2) // передаем координаты капчи в AGClient v1.2
PostMessage($hwnd, 0x555, 4, $y2) // передаем координаты капчи в AGClient v1.2
WAITMS(300)
WAITMS(100)
PostMessage($hwnd, 0x555, 5, 0) // отсылаем распознать капчу
WAIT(1)
WAIT(1)
WAITMS(100)
//--------------------------------
while($indicator=0)
getscreen
if_picture_in(0,0, $_xmax,$_ymax, "cube.bmp", -1, 100) // ищем зеленый квадрат на AGClient
$indicator=1 // если нашли зеленый квадрат, меняем индикатор с 0 на 1
LCLICK(1289,622) // клик по полю ввода капчи
WAITMS(100)
KEYDOWN (#CTRL) // ----------------
WAITMS (30) //------------------------------
KEYDOWN (#V) //-----------------------------------
WAITMS (50) //---------------------------------------------
KEYUP (#V) //---------------------------------------------------- CTRL+V (вставляем капчу)
WAITMS (30) //---------------------------------------------
KEYUP (#CTRL) //-------------------------------------
WAITMS (100) //----------------------------
KEYDOWN (#ENTER) //--------------
WAITMS (50) // ----------------
KEYUP (#ENTER) // --------
//--------------------------------
ELSE // если не нашли
wait(2) // ждем 2 секунды
$indicator=0
END_IF
END_CYC
END_IF