// задаем область
$x1 = 318
$y1 = 379
$x2 = 463
$y2 = 443
// находим окно
$hwnd = wndFind("AGClient v1.1")
// задание координат через сообщение
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)
halt // for single run
[/spoiler]AGClient хорошая вещь но... Ни как не могу привязать к окну, Кликерманн привязывается а AGClient не хочет... в результате делает и отсылает неправельный скрин...Что делать ?:o а где ты там привязки нашёл?К окнам клется км,он находит каптчу в нужном оке и скармливает её AGClient
GOSUB(capcha)// гле нужно вызываем подпрограмму проверки вылезла ли капча.
SUB(capcha) //========== Ловим капчу ===========================================
MOVE(0,0)
WAITMS(100)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "capcha_NEW.bmp",-1,80) //есть капча
$x1 = $_return1+17
$y1 = $_return2+40
$x2 = $_return1+146
$y2 = $_return2+89
$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)
repeat:
waitms(200)
PostMessage($hwnd, 0x555, 5, 0) // распознать
waitms(1000)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "AGClient.bmp")
$AGC_x = $_return1-25
$AGC_y = $_return2-56
LOGWRITE("AGClient X=", $_return1, ", Y=", $_return2)
END_IF
$pic=0
WHILE($pic=0)
GETSCREEN
IF (PXL($AGC_x, $AGC_y)=65535) // жёлтый
WAITMS(300)
END_IF
IF (PXL($AGC_x, $AGC_y)=65280) // зелёный
WAITMS(100)
$pic=1 // выходим из цикла
END_IF
IF (PXL($AGC_x, $AGC_y)=255) // красный
LOGWRITE("Не распознали")
HINTPOPUP("Не распознали")
//HALT
$pic=2
END_IF
END_CYC
IF($pic=2) // если не распознали отправляем повторно новую капчу
TOCLIP("12345")
WAITMS(100)
GOSUB(paste)
WAITMS(1500)
GOTO(repeat)
END_IF
GOSUB(paste)
WAITMS(300)
END_IF
END_SUB
SUB(paste) //========== Вставить ===============================================
KEYDOWN (#CTRL) // Ctrl+V
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
KEYDOWN (#ENTER)
KEYUP (#ENTER)
WAITMS (50)
END_SUB
89.108.73.200 antigate.com
он работает только с аккаунтом?и платно
сделаю как только появится возможность, а пока можете воспользоваться советом из поста прямо над вашимВсего одна функция упростила бы обратное взаимодействие с кликером. Это вывод состояния AGClient (дубль цветного индикатора) в ini в один из параметров.
status = 0 Если он белый, то программа простаивает либо готовится к отправке файла с капчей.
Если он желтый, то капча успешно отправлена и принята в обработку.
status = 1 Если он зеленый, то капча разгадана и решение уже прислано.
status = 2 Красный индикатор свидетельствует об ошибке на одном из этапов
status = wait Если он белый, то программа простаивает либо готовится к отправке файла с капчей.
Если он желтый, то капча успешно отправлена и принята в обработку.
status = ok Если он зеленый, то капча разгадана и решение уже прислано.
status = error Красный индикатор свидетельствует об ошибке на одном из этапов
никак не могу разобраться в командах для клиента, гайд бы составили какойнить в первом посте, и сразу на рукапчу переход - там и быстрее и дешевлеС AGClient идёт readme где всё есть.
AGC v1.4Спасибо. Вроде всё работает. Насколько всё легче стало.
Обновил...
#name "Антикапча 2.0 AGC v1.4"
// Author: Vint
// Version: 0.2.0 (01.12.2014)
// Скрипт для Clickermann v4.11 001
$x1 = 574
$y1 = 514
$x2 = 702
$y2 = 562
WAIT(1)
$hwnd = wndFind("AGClient v1.4") // находим окно
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)
LOGWRITE ("Ответ: ", $response)
WAITMS(500)
END_CYC
IF ($response = 1)
LOGWRITE ("Распознано. Ответ: ", TFREAD("out.txt", 2))
WAITMS(300)
END_IF
IF ($response = 2)
LOGWRITE ("НЕ распознано. Ошибка!")
WAITMS(300)
END_IF
HALT
Пример загрузки в формате multipart:
<form method="post" action="http://rucaptcha.com/in.php" enctype="multipart/form-data">
<input type="hidden" name="method" value="post">
Ключ от учетной записи:
<input type="text" name="key" value="YOUR_APIKEY">
Файл капчи:
<input type="file" name="file">
<input type="submit" value="загрузить и получить ID">
</form>
Я не понимаю как использовать этот код.[user]
; Имя сервера или псевдонима
server=rucaptcha.com
; ваш ключ к системе
apikey=ваш ключ
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Капча.bmp", -1, 100) // поиск окошка капчи
$cap4a = 1
WHILE($cap4a = 1) // цикл распознавания капчи
// Область снимка капчи
$x1 = 886
$y1 = 407
$x2 = 1015
$y2 = 455
WAIT(1)
$hwnd = wndFind("AGClient v1.4") // находим окно
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)
LCLICK(10,10) // клик по полю ввода (нужно вписать координату этого поля!!!)
WAITMS (50)
KEYDOWN (#CTRL) // вставляю в окошко из буфера
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // отправить
WAITMS(300)
$cap4a = 0 // после ввода выходим из цикла
END_IF
IF ($response = 2)
LOGWRITE ("НЕ распознано. Ошибка!")
WAITMS(300)
END_IF
END_CYC
END_IF
Пробовал ли кто-нибудь преодолевать FunCaptcha? На сегодняшний день там нужно получать 2 параметра:1. Какая разница в какую сторону крутить ? Там главное , чтобы через ряд циклов опроса ( после нажатия одной из стрелок ) позиции верблюдов , или собак ( всего 3-4 типа зверушек , насколько я помню) совпадали с теми , что на скриншоте в скрипте, для Кликермана.
1. Какую кнопку нажимать - левую или правую.
2. Количество нажатий для поворота изображения в нормальное положение.
3. И обычно 2 таких каптчи приходится проходить друг за другом, хотя бывает 5 подряд...
$str = "i2bbi"
WHILE(STRPOS($str, "i") > 0)
$str=STRREPLACE($str, "i", "1")
END_CYC
WHILE(STRPOS($str, "b") > 0)
$str=STRREPLACE($str, "b", "6")
END_CYC
LOGWRITE ($str)
LOGWRITE ("Длинна: ", STRLEN($str), " символов")
HALT
сохраняй с помощью SCREENSHOTFIX(10,10, 50,50, "С:\file.bmp", 0) функция автоматически обновляет картинкуоно то можно, но уже както не красиво :(
затем с помощью EXECUTE("С:\file.bmp") запускай файл в паинте
и после небольшой паузу на открытие указывай сектор АГ клиенту там будут уже пронумерованные картинки и со всеми метками, которые ты поставишь.
$x1 = 1364
$y1 = 1256
$x2 = 1677
$y2 = 1643
WAIT(1)
$hwnd = wndFind("AGClient v1.4") // находим окно
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)
LOGWRITE ("Ответ: ", $response)
WAITMS(500)
END_CYC
IF ($response = 1)
LOGWRITE ("Распознано. Ответ: ", TFREAD("out.txt", 2))
WAITMS(300)
END_IF
IF ($response = 2)
LOGWRITE ("НЕ распознано. Ошибка!")
WAITMS(300)
END_IF
HALT
(http://i.imgur.com/C28dq4Z.png)Ну иневозможность посылать файлы через агклиент :( .Разъясни вопрос. Почему не может? Не работает настройка?
numbering($x1, $y1, $x2, $y2) //определение и нумерация капчи по координатам
response() //распознавание
click_pic($str_resp) //клики по картинкам, $str_resp - строка ответа с сервиса.
; создание отчета
file_result_enable = 1
; имя файла с отчетом
file_result = out.txt
; флаг работы только с файлом капчи, без снимков экрана
no_screen = 1
; имя файла с капчей
file_image = last_image.jpg
#name "reCaptcha"
SUB(numbering,$x1_rc,$y1_rc,$x2_rc,$y2_rc)
$x1_scan =int($x1_rc+((($x2_rc-$x1_rc)/5)*2))
$x2_scan =int($x1_rc+((($x2_rc-$x1_rc)/5)*3))
$y1_scan =int($y1_rc+((($y2_rc-$y1_rc)/7)*4))
$y2_scan =int($y1_rc+((($y2_rc-$y1_rc)/7)*6))
UNDEFINE ($x_pic_line)
UNDEFINE ($y_pic_line)
UNDEFINE ($arr_pic)
//------------------------------------------------------------------------------
//определение количества картинок и их координаты
GETSCREEN($x1_rc,$y1_rc,$x2_rc,$y2_rc)
$x_inc = 0
$y_inc = 0
ARRPUSH($x_pic_line,$x1_rc)
WHILE(PXLCOUNT($x1_rc+$x_inc,$y1_scan,$x1_rc+$x_inc,$y2_scan,16777215) = $y2_scan-$y1_scan+1)
inc($x_inc)
IF($x_inc > $x2_rc - $x1_rc)
print("капчи нет в этих координатах.")
halt
END_IF
END_CYC
WHILE(PXLCOUNT($x1_rc+$x_inc,$y1_scan,$x1_rc+$x_inc,$y2_scan,16777215) ! $y2_scan-$y1_scan+1)
inc($x_inc)
IF($x_inc > $x2_rc - $x1_rc)
print("капчи нет в этих координатах.")
halt
END_IF
END_CYC
WHILE(PXLCOUNT($x1_rc+$x_inc,$y1_scan,$x1_rc+$x_inc,$y2_scan,16777215) = $y2_scan-$y1_scan+1)
inc($x_inc)
IF($x_inc > $x2_rc - $x1_rc)
print("капчи нет в этих координатах.")
halt
END_IF
END_CYC
WHILE($x2_rc > $x1_rc+$x_inc)
ARRPUSH($x_pic_line,$x1_rc+$x_inc)
WHILE((PXLCOUNT($x1_rc+$x_inc,$y1_scan,$x1_rc+$x_inc,$y2_scan,16777215) ! $y2_scan-$y1_scan+1) & ($x2_rc > $x1_rc+$x_inc))
inc($x_inc)
END_CYC
WHILE((PXLCOUNT($x1_rc+$x_inc,$y1_scan,$x1_rc+$x_inc,$y2_scan,16777215) = $y2_scan-$y1_scan+1) & ($x2_rc > $x1_rc+$x_inc))
inc($x_inc)
END_CYC
END_CYC
//_________
WHILE(PXLCOUNT($x1_scan,$y1_rc+$y_inc,$x2_scan,$y1_rc+$y_inc,16777215) = $x2_scan-$x1_scan+1)
inc($y_inc)
IF($y_inc > $y2_rc - $y1_rc)
print("капчи нет в этих координатах.")
halt
END_IF
END_CYC
WHILE(PXLCOUNT($x1_scan,$y1_rc+$y_inc,$x2_scan,$y1_rc+$y_inc,16777215) ! $x2_scan-$x1_scan+1)
inc($y_inc)
IF($y_inc > $y2_rc - $y1_rc)
print("капчи нет в этих координатах.")
halt
END_IF
END_CYC
WHILE(PXLCOUNT($x1_scan,$y1_rc+$y_inc,$x2_scan,$y1_rc+$y_inc,16777215) = $x2_scan-$x1_scan+1)
inc($y_inc)
IF($y_inc > $y2_rc - $y1_rc)
print("капчи нет в этих координатах.")
halt
END_IF
END_CYC
WHILE($y2_rc > $y1_rc+$y_inc)
ARRPUSH($y_pic_line,$y1_rc+$y_inc)
WHILE((PXLCOUNT($x1_scan,$y1_rc+$y_inc,$x2_scan,$y1_rc+$y_inc,16777215) ! $x2_scan-$x1_scan+1) & ($y2_rc > $y1_rc+$y_inc))
inc($y_inc)
END_CYC
WHILE((PXLCOUNT($x1_scan,$y1_rc+$y_inc,$x2_scan,$y1_rc+$y_inc,16777215) = $x2_scan-$x1_scan+1) & ($y2_rc > $y1_rc+$y_inc))
inc($y_inc)
END_CYC
END_CYC
//------------------------------------------------------------------------------
//вывод в лог всех координат (по желанию) и закидываем их в один массив (координаты верхнего левого угла)
print("---------------------------")
print("найдено ", ARRSIZE($y_pic_line)*ARRSIZE($x_pic_line), " картинок - ", ARRSIZE($y_pic_line),"x",ARRSIZE($x_pic_line))
//print(" ")
// print("координаты:")
FOR($i_y = 0,$i_y < ARRSIZE($y_pic_line))
FOR($i_x = 0,$i_x < ARRSIZE($x_pic_line))
// print($x_pic_line[$i_x],":",$y_pic_line[$i_y])
ARRPUSH ($arr_pic,$x_pic_line[$i_x])
ARRPUSH ($arr_pic,$y_pic_line[$i_y])
END_CYC
END_CYC
//------------------------------------------------------------------------------
//нумерация каждой картинки
$i_num = 1
FOR($i_y=0,$i_y < ARRSIZE($y_pic_line))
FOR($i_x=0,$i_x < ARRSIZE($x_pic_line))
$str_wr = 0
FOR($str=1,$str<12)
$pxl_wr = 0
FOR($pxl=1,$pxl<80,8)
SWITCH($i_num)
CASE(10)
$txt = "A"
CASE(11)
$txt = "B"
CASE(12)
$txt = "C"
CASE(13)
$txt = "D"
CASE(14)
$txt = "E"
CASE(15)
$txt = "F"
CASE(16)
$txt = "G"
DEFAULT
$txt = $i_num
END_SWITCH
$col = int(STRCUT (TFREAD ($txt, $str),$pxl, 8))
PXLREPLACE($x_pic_line[$i_x]+$pxl_wr,$y_pic_line[$i_y]+$str_wr,$x_pic_line[$i_x]+$pxl_wr,$y_pic_line[$i_y]+$str_wr, -1, $col)
inc($pxl_wr)
END_CYC
inc($str_wr)
END_CYC
inc($i_num)
END_CYC
END_CYC
//SCREENSHOTEX($x1_rc,$y1_rc,$x2_rc,$y2_rc, "Image_", 0)
SCREENSHOTFIX($x1_rc,$y1_rc,$x2_rc,$y2_rc, "last_image.jpg", 1)
print("пронумеровано и сохранено в last_image.jpg")
print(" ")
//имеем массив с координатами рисунков $arr_pic
//и готовый пронумерованный рисунок капчи в папке со скриптом
END_SUB
//------------------------------------------------------------------------------
//отправка на сервис распознавания.
SUB(response)
print("отправка на сервис распознавания.")
$hwnd = wndFind("AGClient v1.5") // находим окно
print("AGClient hwnd: ", $hwnd)
IF($hwnd = 0)
print("AGClient не запущен.")
halt
END_IF
TFCLEAR("out.txt")
WAITMS(50)
TFWRITE("out.txt", "0")
waitms(200)
PostMessage($hwnd, 0x555, 5, 0) // распознать
waitms(200)
$response = 0
print("ожидание ответа. ждем...")
WHILE($response = 0)
$response = TFREAD("out.txt", 1)
WAITMS(500)
END_CYC
IF ($response = 1)
LOGWRITE ("Распознано. Ответ: ", TFREAD("out.txt", 2))
WAITMS(300)
$str_resp = TFREAD("out.txt", 2) //строка с ответом
END_IF
IF ($response = 2)
LOGWRITE ("НЕ распознано. Ошибка!")
WAITMS(300)
$str_resp = 0 //если не распознана, ответ = 0
END_IF
print(" ")
END_SUB
//------------------------------------------------------------------------------
//выбираем нужные картинки с помощью полученного с рукапчи ответа
SUB(click_pic,$str_resp)
UNDEFINE ($arr_num)
FOR($num_str = 1,$num_str < STRLEN ($str_resp)+1)
SWITCH(STRCUT($str_resp,$num_str,1))
CASE("a")
ARRPUSH ($arr_num, 10)
CASE("а") //иногда присылают русские буквы :)
ARRPUSH ($arr_num, 10)
CASE("b")
ARRPUSH ($arr_num, 11)
CASE("в")
ARRPUSH ($arr_num, 11)
CASE("c")
ARRPUSH ($arr_num, 12)
CASE("с")
ARRPUSH ($arr_num, 12)
CASE("d")
ARRPUSH ($arr_num, 13)
CASE("e")
ARRPUSH ($arr_num, 14)
CASE("е")
ARRPUSH ($arr_num, 14)
CASE("f")
ARRPUSH ($arr_num, 15)
CASE("g")
ARRPUSH ($arr_num, 16)
DEFAULT
ARRPUSH ($arr_num, STRCUT($str_resp,$num_str,1))
END_SWITCH
END_CYC
IF($str_resp ! 0)
print("клики по распознанным картинкам:")
FOR($num = 0,$num<ARRSIZE($arr_num))
print($arr_num[$num])
IF($arr_num[$num] - $arr_num[$num] = 0)
LCLICK($arr_pic[($arr_num[$num]-1)*2]+20,$arr_pic[($arr_num[$num]-1)*2+1]+20)
//рандом и реалистичное передвижение мыши по желанию
waitms(500)
ELSE
print("ошибочный ответ.")
END_IF
END_CYC
END_IF
END_SUB
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//основной код
//код для теста, который описан в видео
wait(1)
LCLICK(2363,851) //клик по "я робот"
wait(2)
numbering(2383,655,2657,1012) //определение и нумерация капчи по координатам
waitms(500)
response() //распознавание
waitms(500)
click_pic($str_resp) //клики по картинкам
waitms(500)
LCLICK(2606,1030) //клик по "подтвердить"
wait(2)
KEYPRESS(#f5) //обновить страницу
wait(4)
в настройках сайта твоя максимальная цена за разгадывание капчи ниже установленной на данный час.Действительно так и было, большое спасибо за помощь.
Распознавание "reCaptcha" с помощью Clickermann и AGClient.
Краткая демонстрация работы скрипта - видео на youtube.com (https://www.youtube.com/watch?v=R_oyccajlp4)
На сервисе rucaptcha.com услуга распознавания рекапчи стоит 16 копеек за одно разгадывание. Данный метод снижает стоимость до 5 копеек. За счет отправки рекапчи в виде изображения, сервис определяет ее как обычную капчу.
Во вложении:
numbering.zip - заготовки номеров картинок.
reCaptchacms_AGClientv1.5+config_nembers.zip - скрипт, AGClient v1.5+config.ini, заготовки номеров картинок.
В чем может быть дело?Если версия кликера v4.13.004b, то замени все знаки неравно (!)
WHILE(PXLCOUNT($x1_rc+$x_inc,$y1_scan,$x1_rc+$x_inc,$y2_scan,16777215) ! $y2_scan-$y1_scan+1)
на новые (!=)WHILE(PXLCOUNT($x1_rc+$x_inc,$y1_scan,$x1_rc+$x_inc,$y2_scan,16777215) != $y2_scan-$y1_scan+1)
Помогите мне пожалуйста разобраться, все делал по инструкции dramster в ответе #48Потому что все, что после "//основной код" в моем демонстрационном скрипте, ты должен написать сам. Свои клики, со своими координатами, вызовы подпрограмм, также со своими параметрами координат.
Запустил сайт с рекапчой, AGClient v1.5 свой ключ и сайт ввел, и при запуске скрипта reCaptcha.cms курсор уходит в правый нижний угол и останавливается и пишет что капчи нет в этих координатах.
Подскажите в чем может быть проблема, если можно помогите разобраться
GETSCREEN
IF_PICTURE_IN (0,0, 712,$_ymax, "captcha_area.bmp", 2366701, 100)
$hwndagc = WNDFIND("AGClient v1")
POSTMESSAGE($hwndagc, 0x555, 1, $_return1)
POSTMESSAGE($hwndagc, 0x555, 2, $_return2)
POSTMESSAGE($hwndagc, 0x555, 3, $_return1+208)
POSTMESSAGE($hwndagc, 0x555, 4, $_return2+42)
WAITMS(50)
POSTMESSAGE($hwndagc,1365,5,0)
WAITMS(50)
ELSE
а почему-бы вам не установить снова виртуальную Windows XP и снова получать удовольствие от работы приложения, а не искать постоянные проблемы с новейшими операционками, на которых оно не тестировалось?Одно из приложений после обязательного обновления, с которыми я работал используя Clickermann, частично имеет серьезные ошибки в XP.
Распознавание "reCaptcha" с помощью Clickermann и AGClient.
какая разница сколько пробелов в получаемом с сайта ответе, если он один и картинка отсылается одна?в двойных капчах же 2 слова и некоторые сайты требуют пробел между ними а в моём случае сайт пишет ошибку если туда суют пробелы :'(
23:22:36 ---------------------------
23:22:36 найдено 9 картинок - 3x3
23:22:40 пронумеровано и сохранено в last_image.jpg
23:22:40
Но, насколько мне известно, таких капчей как раньше были уже мало осталось :( . Сейчас они все посложнее - после клика по рисункам в место них появляются новые >:(
dramster, спасибо за ответ, но, если так ввести координаты, то верхнюю синюю часть он тоже делит на несколько квадратов и пронумеровывает их.
она зараза разных размеров
а именно - она зараза разных размеров вылазит, координаты разные, когда координаты подходят - все норм. а когда нет- грязь выходит. Одно расстройство((( Я правильно понимаю, что в этом случае ничего не выйдет?
имела в виду, что картинок в ней не всегда 9, то 8, то 12, то 16 - из-за этого она и пляшет.
Покажи фрагмент того что требуется распознать.
На использование сервисов типа рукапчи и подобных, уходит довольно много времени. Возможно выйдет распознать текст штатными средствами. Если нет, сторонний софт поможет.
Если это не сервисы, то зачем тогда AGCliente? Это программа для отправки на сервисы.
Если у тебя локальная программа, то ей нужно отправлять напрямую. Для этого нужно знать, какие данные и как, она данные принимает.
автор кода DramsterТак дальше там же в теме почитай
Господа форумчане, подскажите, пожалуйста, где взять AGClient 1.5? на вашем сайте тут только 1.4, а в этой теме ссылка на rghost не работает (500 ошибка). Может у кого остался он и может поделиться?
P.S 1.4 вроде определяет капчу, но вот рисунки от 10 и выше приходят не буквами, а 101112 и т.д
В файле "config.ini" программы "AGClient" нужно вписать Имя сервера и ключCode: [Select][user]
; Имя сервера или псевдонима
server=rucaptcha.com
; ваш ключ к системе
apikey=ваш ключ
Вот скрипт для кликера.
Картинка "Капча.bmp" это часть окошка капчи по которому можно понять что копча находится на экране, иначе распознавание пропускаем.
В скрипте требуется настроить "Область снимка капчи" и "клик по полю ввода" если конечно он вообще нужен.Code: (clickermann) [Select]GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Капча.bmp", -1, 100) // поиск окошка капчи
$cap4a = 1
WHILE($cap4a = 1) // цикл распознавания капчи
// Область снимка капчи
$x1 = 886
$y1 = 407
$x2 = 1015
$y2 = 455
WAIT(1)
$hwnd = wndFind("AGClient v1.4") // находим окно
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)
LCLICK(10,10) // клик по полю ввода (нужно вписать координату этого поля!!!)
WAITMS (50)
KEYDOWN (#CTRL) // вставляю в окошко из буфера
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // отправить
WAITMS(300)
$cap4a = 0 // после ввода выходим из цикла
END_IF
IF ($response = 2)
LOGWRITE ("НЕ распознано. Ошибка!")
WAITMS(300)
END_IF
END_CYC
END_IF
$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.Файл config.ini настроен
Спасибо, что откликнулись. Да, похоже проблема в file_result - перенес папку в другое место, а изменить конфиг не додумался.Да.
Еще подскажите, пожалуйста: чтобы записывало буфер в оut.txt нужно чтобы стояло "1" в file_result_enable?
ОК. Спасибо. Все настроил, теперь проблема с отправкой - AGClient слишком долго отправляет. Завис и все, так и не дождался отправки. Это как-то можно исправить?исправляется настройками в вашем аккаунте на сайте максимально допустимой суммы за разгадывание на текущий час.
С суммой там все нормально. Капча просто не уходит на Антигейт.ОК. Спасибо. Все настроил, теперь проблема с отправкой - AGClient слишком долго отправляет. Завис и все, так и не дождался отправки. Это как-то можно исправить?исправляется настройками в вашем аккаунте на сайте максимально допустимой суммы за разгадывание на текущий час.
С суммой там все нормально. Капча просто не уходит на Антигейт.Это просто проверить. Вернитесь к той версии вашего скрипта что отправляла и проверьте отправляет ли она.
// задаем область
$x1 = 318
$y1 = 379
$x2 = 463
$y2 = 443
// находим окно
$hwnd = wndFind("AGClient v1.1")
// задание координат через сообщение
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)
halt // for single run
AGClient не отправляет на сервер антигейт. Состояние AGClient "Отправка..." может висеть часами и никакого толка. Тупо не понимаю в чем и где проблема.Валерий, дико извиняюсь за назойливость, но вы реально используете версию программы "AGClient v1.1", не 1.4 или 1.5 ?
но вы реально используете версию программы "AGClient v1.1", не 1.4 или 1.5 ?Я использую "AGClient v1.5" . В коде тоже правильно указана версия клиента. Не то скопировал просто.
Если по существу то должны были уже самостоятельно обратить внимание на несоответствие в представленном вами актуальном скрипте. :)Code: (clickermann) [Select]$hwnd = wndFind("AGClient v1.1")