Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - SAOi

Pages: [1]
1
Привет всем еще раз. В прошлый раз я спрашивал, как сделать остановку скрипта, пока капча не распознается.
Сейчас у меня всё работает нормально. Но есть один косяк. Программа AGClient 1.2, иногда не отсылает капчу на сервис антигейта, просто белый квадратик и рядом надпись "отправка...", и так и не отправляется, ждал час.
Помогает лишь перезапуск программы AGClient 1.2 и повторное нажатие на "распознать".

Ниже я предоставлю код, в котором есть цикл и условия.
В цикле ищем картинку, если нашли, выполняем определённый код. Если нет, ждем 2 секунды и проверяем вновь.
Мне нужно сделать так, что бы она проверяла 30-35 секунд(через каждые 2 секунды), если данной картинки не находит то  -  закрыть программу AGClient 1.2, запустить её вновь, и нажать на "распознать."
Закрыт её и открыть я думаю что сам смогу. Подскажите как сделать интервал до 30-35 секунд??

Помогите мне пожалуйста дописать код, или толкните в правильном направлении.

Код:
Code: (clickermann) [Select]
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

2
Привет.

Я дико извиняюсь если этот вопрос уже всплывал. Укаратко пробежася по поиску, вроде бы нет подобного вопроса.

Я делаю бота для онлайн игры (браузерная игра, на подобии БК). Там просто клики и паузы между ними.
Далее у меня в редакторе данное условие:
Code: (clickermann) [Select]
getscreen
WAITMS(50)
IF_PICTURE_IN (1263,634, 1353,670, "saoi.bmp")
WAITMS(100)
SOUND("play.wav")
BEEP(800,200)
HINTPOPUP("Íà÷èíàåòñÿ ðàñïîçíîâàíèå êàï÷è", "Title")
$x1 = 1141
$y1 = 1256
$x2 = 613
$y2 = 669
$hwnd = wndFind("AGClient v1.2")
PostMessage($hwnd, 0x555, 1, $x1)
PostMessage($hwnd, 0x555, 2, $y1)
PostMessage($hwnd, 0x555, 3, $x2)
PostMessage($hwnd, 0x555, 4, $y2)
WAITMS(100)
PostMessage($hwnd, 0x555, 5, 0)
END_IF

То-есть я проверяю, не вылезла ли капча, если появилась, то отсылаю её на распознавание.
Как сделать паузу, пока не распознается капча ?

Подскажите пожалуйста, спасибо заранее!!!

Pages: [1]