Обсуждение скриптов и вопросов связанных с борьбой с капчами.
========================================================================
Начну пожалуй.
if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=script ATTR=src:*recaptcha*')>0){ f1='FRAME NAME=undefined\n'; iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=iframe ATTR=src:*recaptcha/api2/frame?c=* extract=htm'); f2='FRAME '+iimGetExtract().match(/name=".*?"/)+'\n'; iimPlayCode('ONDOWNLOAD FOLDER=C:\\CapNum\\ FILE=cap.jpg WAIT=YES\n'+f2+'TAG POS=1 TYPE=DIV ATTR=class:rc-imageselect-payload CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); }
Уменьшение картинки/капчи в размерах.
Тут есть много вариантов, приведу парочку.
Вариант 1
Использование сторонней программы.
Качаем convert.exe и распаковываем в папку куда сохраняются капчи (допустим C:\\CapNum\\).Вот этот код уменьшит и обрежет картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg)Выделить кодКод:
var Cc=Components.classes, Ci=Components.interfaces; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['convert', 'C:\\CapNum\\cap.jpg', '-resize', '200x300', '-crop', '194x253+4+4', 'C:\\CapNum\\cap2.jpg']; file.initWithPath("C:\\CapNum\\convert.exe"); proc.init(file); proc.run(false, args, args.length);
Вариант 2
Использование PHP
Качаем вот это и распаковываем в папку C:\\CapNum\\.
Создаём файлик 1.php в папке куда сохраняются капчи C:\\CapNum\\.Скрипт 1.phpВыделить кодКод:
<?php $img=imagecreatefromjpeg("C:/CapNum/cap.jpg"); $des=imagecreatetruecolor(200,300); $col=imagecolorallocate($des, 0x00, 0x00, 0xFF); imagecopyresized($des, $img, 0, 0, 0, 0, 200, 300, 384, 510); imagestring($des, 5, 5, 70, "1", $col); imagestring($des, 5, 73, 70, "2", $col); imagestring($des, 5, 140, 70, "3", $col); imagestring($des, 5, 5, 148, "4", $col); imagestring($des, 5, 73, 148, "5", $col); imagestring($des, 5, 140, 148, "6", $col); imagestring($des, 5, 5, 225, "7", $col); imagestring($des, 5, 73, 225, "8", $col); imagestring($des, 5, 140, 225, "9", $col); imagejpeg($des, 'C:/CapNum/cap2.jpg'); imagedestroy($des); imagedestroy($img); ?>Вот этот код, для запуска 1.php, уменьшит картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg).
И так же пронумерует все варианты ответов (маленькие картинки) от 1 до 9 .Выделить кодКод:
var Cc=Components.classes, Ci=Components.interfaces; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['C:\\CapNum\\1.php']; file.initWithPath('C:\\CapNum\\PHP\\PHP.exe'); // <--- Путь до PHP.exe proc.init(file); proc.run(false, args, args.length);
function resize(){ var Cc=Components.classes, Ci=Components.interfaces, c, Path='C:\\CapNum\\'; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['convert', 'C:\\CapNum\\cap.jpg', '-resize', '200x300', '-crop', '194x253+4+4', 'C:\\CapNum\\cap2.jpg']; file.initWithPath(Path+"convert.exe"); proc.init(file); proc.run(false, args, args.length);} var key='тут ключик от рукапчи'; var bit='тут биткоин кошель'; f1='FRAME NAME=undefined\n'; if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=2 TYPE=DIV ATTR=TXT:reCAPTCHA')>0){ iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=iframe ATTR=src:*recaptcha/api2/frame?c=* extract=htm'); f2='FRAME '+iimGetExtract().match(/name=".*?"/)+'\n'; if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-desc-wrapper')>0){ for(a=1; a<9; a++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS=1 TYPE=DIV ATTR=CLASS:rc-image-tile-33')>0) break; else iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0');} iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\n'+f2+'TAG POS=1 TYPE=DIV ATTR=class:rc-imageselect-payload CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('WAIT SECONDS=2'); resize(); // <--- Уменьшаем картинку iimPlayCode('WAIT SECONDS=2'); iimPlayCode('TAB OPEN\nTAB T=2'); /*** -= Отправляем на распознавание =- ***/ for(sk=0; sk<=9; sk++){ iimPlayCode('SET !TIMEOUT 30\nURL GOTO=imacros2.rucaptcha.com/new/'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+key); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'cap2.jpg'); iimPlayCode('SET !TIMEOUT 80\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ c=iimGetExtract().match(/\d+/g).join(''); iimDisplay(c); if(iimGetExtract().indexOf("ERROR")<0) break;}}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); if(Number(c)>0){ for(k=0; k<c.length; k++){ iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');} iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0'); //<--- Код нажатия кнопки Продолжить, на некоторых сайтах может отличаться iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0'); iimPlayCode('WAIT SECONDS=2');}} iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')>0){ iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); // <--- Водим биткоин кошель iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); // <--- Нажатие кнопки на самом сайте, тег кнопки может отличаться iimPlayCode('WAIT SECONDS=1');}}
Сначала качаем вот это и распаковываем в папку C:\CapNum\
https://pastebin.mozilla.org/8867297
var Cc=Components.classes, Ci=Components.interfaces,a,b,c,d,e,f=0,refka='1AWqZ3ke9z8eSvZWFPeHTY8a3jmQNWKhSa'; var cok=Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager); var prf=Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); var str=Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString); var alt=Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService); var t0='SET !TIMEOUT_STEP 0\n', t3='SET !TIMEOUT 30\n'; kap="javascript:document.write('<b><h1>Распознаём капчу !</h1></b>');window.stop();"; Path='C:\\CapNum\\solve\\'; bit='биткоин кошель'; //for(;;){ del_cookis(); iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nSET !TIMEOUT 30\nURL GOTO=crypto4free.net?r='+refka); a=iimPlayCode(t0+'TAG POS=1 TYPE=LABEL FORM=NAME:NoFormName ATTR=TXT:*our*address*'); b=iimPlayCode(t0+'TAG POS=1 TYPE=LABEL FORM=NAME:NoFormName ATTR=TXT:Ваш*адрес:'); c=iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=ID:faucet-label'); d=iimPlayCode(t0+'TAG POS=1 TYPE=div ATTR=ID:adcopy-outer'); e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:*ou*wait*'); if((a>0||b>0||c>0) && d>0 && e<0) solve(); weit(361); //} /***************************************************/ function solve(){ var txt='', w=0; for(q=0; q<2; q++){ if(iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:*ou*wait*')>0) break; for(z=0; z<20; z++){ /* Если грязная капча обновляем */ if(iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=SRC:*api.solvemedia.com/papi/media?c=*')>0) reload(); else{ z=100; for(w=0; w<=60; w++){ /* Ищем капчу с тегом SPAN slog (которая ломается без распознавания) или флеш капчу или обычный канвас (капча с ровными буквами) */ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog')>0){ /* Если ломаемая капча извлекаем текст и нижний код пропускаем */ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog')>0){ iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog EXTRACT=TXT'); txt=iimGetLastExtract();} /* Если флеш капча, сохраняем на комп и запускаем функцию flesh() и нижний код пропускаем */ else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0){ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0) weit(10); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode(t0+'TAG POS=1 TYPE=A ATTR=TXT:Return*Page'); weit(1); flesh();} /* Если обычный канвас (капча с ровными буквами), сохраняем на комп и запускаем функцию canvas() */ else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog')>0){ iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*slog CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); canvas();}w=100;}}}} /* Если ничего из верхнего не помогло, грязная капча */ if(w!=100){ iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nTAG POS=1 TYPE=IMG ATTR=SRC:http://api.solvemedia.com/papi/media?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); ... // Тут отправка на сервис распознавания ... } txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,""); if(txt!='' && txt.length>5){ iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); iimPlayCode(t0+'TAG POS=2 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:adcopy_response CONTENT="'+txt+'"');weit(1); if(iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*')<0) iimPlayCode(t3+'TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:*Get*');} else reload(); if(iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=CLASS:alert*alert*&&TXT:*satoshi*sen*')>0) q=10;}} /***-= Обрабатываем флеш капчу =-***/ function flesh(){ iimDisplay('Обрабатываем флеш капчу'); iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"'); var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\flesh.vbs"]; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath("C:\\Windows\\System32\\wscript.exe"); proc.init(file); proc.run(false, args, args.length); weit(15); iimPlayCode('URL GOTO=file:///'+Path+'otvet.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); txt=iimGetExtract();weit(1); iimPlayCode('TAB CLOSE');} /***-= Обрабатываем канвас капчу =-***/ function canvas(){ iimDisplay('Обрабатываем канвас капчу'); iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"'); var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\canvas.vbs"]; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath("C:\\Windows\\System32\\wscript.exe"); proc.init(file); proc.run(false, args, args.length); weit(15); iimPlayCode('URL GOTO=file:///'+Path+'otvet.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); txt=iimGetExtract();weit(1); iimPlayCode('TAB CLOSE');} /***-= Удаляем куки =-***/ function del_cookis(){ iimDisplay('Удаляем куки'); var iter=cok.enumerator; while (iter.hasMoreElements()){var cookie=iter.getNext(); if(cookie instanceof Ci.nsICookie){ cok.remove(cookie.host, cookie.name, cookie.path, cookie.blocked);}}} /***-= Обновление капчи =-***/ function reload(){iimPlayCode(t3+'TAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif'); weit(1);} /***-= Ожидание =-***/ function weit(s){iimPlayCode('WAIT SECONDS='+s);}
Отредактировано PRESIDENT (19-04-2016 18:30:59)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
InfSub
Помогло) Спасибо!
И вот еще так заработало
Отсутствует
wanksta
скрытый текстВыделить кодКод:
for(sk=0; sk<=9; sk++){ iimPlayCode('SET !TIMEOUT 30\nURL GOTO=imacros2.rucaptcha.com/new/'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:getcapcha.php ATTR=NAME:get_id CONTENT=YES'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+api); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'captcha9.jpg'); iimPlayCode('SET !TIMEOUT 90\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ a=iimGetLastExtract().split('|'); s=a[2].replace(/ /g,"<sp>"); iimDisplay(s); break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:adcopy_response CONTENT='+s+''); iimPlayCode('TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Get<SP>a<SP>reward!\nFILEDELETE NAME=C:\\CapNum\\captcha9.jpg'); f=iimPlayCode('SET !TIMEOUT 1\nTAG POS=1 TYPE=DIV ATTR=CLASS:*alert-danger*');if(f>0){ iimPlayCode('TAB OPEN\nTAB T=2'); iimPlayCode('URL GOTO=rucaptcha.com/res.php?key='+api+'&action=reportbad&id='+a[1]+''); iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); iimPlayCode('WAIT SECONDS=3');}}}
Что то Ваш скрипт у меня не так работает) Отправка есть все норм, но не нажимает на рекапче ответ присланный. Может что не так делаю?
Отсутствует
но не нажимает на
рекапче
ответ
Этот код вроде для солвемедия.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Ronar_13 пишетно не нажимает на
рекапче
ответ
Этот код вроде для солвемедия.
Тяжелый день был, спасибо) А как тогда прикрутить к рекапче?
Отредактировано Ronar_13 (01-02-2016 20:54:22)
Отсутствует
Ronar_13
/*** -= Отправляем на распознавание =- ***/ for(sk=0; sk<=9; sk++){ iimPlayCode('SET !TIMEOUT 60\nURL GOTO=imacros2.rucaptcha.com'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:getcapcha.php ATTR=NAME:get_id CONTENT=YES'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:getcapcha.php ATTR=NAME:numeric CONTENT=1'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+api); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:getcapcha.php ATTR=NAME:textinstructions CONTENT=Для<sp>правильного<sp>ответа<sp>Вы<sp>должны<sp>выбрать<sp>'+a[0]+'<sp>картинки'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'cap2.jpg'); iimPlayCode('SET !TIMEOUT 90\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ a=iimGetLastExtract().split('|'); c=a[2].match(/\d+/g).sort().join(''); iimDisplay(c); if(iimGetExtract().indexOf("ERROR")<0) break;}} break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); if(Number(c)>0){ for(k=0; k<c.length; k++){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');} iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nEVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0'); //<--- Код нажатия кнопки Продолжить, на некоторых сайтах может отличаться iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nEVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0'); iimPlayCode('WAIT SECONDS=2');}} iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ iimPlayCode('TAB OPEN\nTAB T=2'); iimPlayCode('URL GOTO=rucaptcha.com/res.php?key='+api+'&action=reportbad&id='+a[1]+''); iimPlayCode('WAIT SECONDS=1\nTAB CLOSE');} else{ iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); // <--- Нажатие кнопки на самом сайте, тег кнопки может отличаться iimPlayCode('WAIT SECONDS=10');}} break;}}
Отредактировано Koks (02-02-2016 07:51:19)
Отсутствует
если ответ с рукапчи приходит такого вида OK|9999999|99 все нормально
если такого вида OK|9999999|блабла то окно с rucaptcha.com не закрывается и скрип не может отрепостить
на неправильный ответ
Хотя при отправке на рукапчу стоит условие только нумерация
iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:getcapcha.php ATTR=NAME:numeric CONTENT=1');
iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ a=iimGetLastExtract().split('|'); c=a[2].match(/\d+/g).join(''); iimDisplay(c); if(iimGetExtract().indexOf("ERROR")<0) break;}} break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE');
iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ a=iimGetLastExtract().split('|'); s=a[2].replace(/ /g,"<sp>"); iimDisplay(s); if(iimGetExtract().indexOf("ERROR")<0) break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE');
Отредактировано Koks (02-02-2016 11:23:31)
Отсутствует
melena083
удалено, избыточное цитирование
Не хочет заходить на краны, где я набочинил со скриптом?
var timer = 5; var btc = "!!!удалено!!!" var k,w,f,q,kl,ws; iimPlayCode('TAB T=1\nURL GOTO=https://faucetbox.com/en/list/\nWAIT SECONDS=#DOWNLOADCOMPLETE#'); // ======== Начали отрабатывать краны ======== for(;;){ for(w2=1; w2<=ws; w2++){ iimDisplay(w2); iimPlayCode('WAIT SECONDS=3'); iimPlayCode('EVENT TYPE=CLICK SELECTOR="#faucets-list>TABLE>TBODY>TR:nth-of-type('+w2+')>TD:nth-of-type(2)>A" BUTTON=0'); rekws(); iimPlayCode('TAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image extract=htm'); if(iimGetExtract().indexOf('adcopy-puzzle-image-image')>0){ solvemedia();} knopf(); } iimPlayCode('TAB T=0\nTAB CLOSEALLOTHERS');} // ======== время между кранами ========== iimPlayCode('TAB T=1\nWAIT SECONDS='+timer); //=================================== function solvemedia() {for (w=1; w<=30; w++){ f=iimPlay("CODE:SET !TIMEOUT 1 \nTAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image");if(f>0){ iimPlay("CODE:SET !TIMEOUT 20\n SET !TIMEOUT_STEP 5 \n TAG POS=1 TYPE=IMG ATTR=SRC:http://api.solvemedia.com/media/reload-whV2.gif \n WAIT SECONDS=3"); iimPlay("CODE:WAIT SECONDS=1");} else{ f=iimPlay("CODE:SET !TIMEOUT 1\nTAG POS=1 TYPE=SPAN ATTR=ID:adcopy-instr");if(f>0){ for (q=1; q<=70; q++){ f=iimPlay("CODE:SET !TIMEOUT 1\nFRAME F="+q+"\nTAG POS=1 TYPE=SPAN ATTR=ID:instr");if(f>0){ iimPlay("CODE:FRAME F="+q+"\nTAG POS=1 TYPE=SPAN ATTR=ID:slog EXTRACT=TXT"); kl=iimGetLastExtract(); iimPlay('CODE: TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:adcopy_response CONTENT='+kl.replace(/ /g,"<SP>")+'\n TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=* '); iimPlay("CODE:WAIT SECONDS=1"); break;}}break;}}} k=0; iimPlayCode("WAIT SECONDS=10"); } function rekws(){ iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:address CONTENT='+btc); iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+btc); iimPlayCode('TAG POS=2 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+btc); iimPlayCode('TAG POS=3 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+btc); } function knopf(){ iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); iimPlayCode('TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=*'); iimPlayCode('TAG POS=2 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); iimPlayCode('TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Get*satoshi'); iimPlayCode('TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Yes'); iimPlayCode('WAIT SECONDS=3');}
Отредактировано Shejker (02-02-2016 12:26:14)
Отсутствует
скрытый текст
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Ronar_13
скрытый текстВыделить кодКод:
/*** -= Отправляем на распознавание =- ***/ for(sk=0; sk<=9; sk++){ iimPlayCode('SET !TIMEOUT 60\nURL GOTO=imacros2.rucaptcha.com'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:getcapcha.php ATTR=NAME:get_id CONTENT=YES'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:getcapcha.php ATTR=NAME:numeric CONTENT=1'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+api); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:getcapcha.php ATTR=NAME:textinstructions CONTENT=Для<sp>правильного<sp>ответа<sp>Вы<sp>должны<sp>выбрать<sp>'+a[0]+'<sp>картинки'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'cap2.jpg'); iimPlayCode('SET !TIMEOUT 90\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ a=iimGetLastExtract().split('|'); c=a[2].match(/\d+/g).sort().join(''); iimDisplay(c); if(iimGetExtract().indexOf("ERROR")<0) break;}} break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); if(Number(c)>0){ for(k=0; k<c.length; k++){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');} iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nEVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0'); //<--- Код нажатия кнопки Продолжить, на некоторых сайтах может отличаться iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nEVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0'); iimPlayCode('WAIT SECONDS=2');}} iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ iimPlayCode('TAB OPEN\nTAB T=2'); iimPlayCode('URL GOTO=rucaptcha.com/res.php?key='+api+'&action=reportbad&id='+a[1]+''); iimPlayCode('WAIT SECONDS=1\nTAB CLOSE');} else{ iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); // <--- Нажатие кнопки на самом сайте, тег кнопки может отличаться iimPlayCode('WAIT SECONDS=10');}} break;}}
Спасибо все работает! Только нужно изменить
Отсутствует
Ronar_13
тогда удали строку c текстовой инструкцией
она не пройдет на imacros2.rucaptcha.com/new/
больно ты Не радуйся все это смахивает на жульничество
70% от всех моих жалоб не подтверждается модераторами
Отредактировано Koks (02-02-2016 17:32:51)
Отсутствует
Ronar_13
тогда удали строку c текстовой инструкцией
она не пройдет на imacros2.rucaptcha.com/new/
больно ты Не радуйся все это смахивает на жульничество
70% от всех моих жалоб не подтверждается модераторамискрытый текстВойдите или зарегистрируйтесь, чтобы увидеть скрытый текст.
Измени строку которую указал
InfSub
Да, забыл просто написать. Все изменения сделал работает отлично.
Отсутствует
Shejker
Вот подправил немного
Можете закомментировать если не хотите отрабатывать recapcha.
var Path='C:\\CAPCH\\'; function resize(){ var Cc=Components.classes, Ci=Components.interfaces, c, Path='C:\\CAPCH\\'; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['C:\\CAPCH\\1.php']; file.initWithPath('C:\\CAPCH\\PHP\\PHP.exe'); // <--- Путь до PHP.exe proc.init(file); proc.run(false, args, args.length);} var w2 = 1; var btc = "**************" var api = "**************" iimPlayCode('URL GOTO=faucetbox.com/en/list/'); // ======== Начали отрабатывать краны ======== for(w2=1; w2<=999; w2++){ iimDisplay(w2); iimPlayCode('WAIT SECONDS=3'); iimPlayCode('EVENT TYPE=CLICK SELECTOR="#faucets-list>TABLE>TBODY>TR:nth-of-type('+w2+')>TD:nth-of-type(2)>A" BUTTON=0'); iimPlayCode('TAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image extract=htm'); if(iimGetExtract().indexOf('adcopy-puzzle-image-image')>0){ rekws(); solvemedia(); knopf(); iimPlay("Code:WAIT SECONDS=10\nTAB CLOSE");} else { rekws(); // ======== Здесь можете закомментировать если не хотите отрабатывать recapcha. ======== recapcha(); // ===================================================================================== iimPlay("Code:WAIT SECONDS=10\nTAB CLOSE");}} /***-= Solvemedia =-***/ function solvemedia(){ for(w=0; w<20; w++){ f=iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:adcopy_response');if(f<0){ iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif');weit(1);} f=iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image');if(f>0){ iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif');weit(1);} else{ for(q=5; q<40; q++){ f=iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+q+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog');if(f>0){ iimPlayCode('FRAME F='+q+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog EXTRACT=TXT'); kl=iimGetExtract().replace(/ /g,'<SP>'); iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=* ATTR=ID:adcopy_response CONTENT='+kl); weit(1); q=99; w=100; f=iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');if(f<0) iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Get*');} else{ f=iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+q+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog');if(f>0){ iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=IMG ATTR=SRC:*reload*.gif');weit(1);break;}}}}}} /***-= Ожидание=-***/ function weit(s){iimPlayCode('WAIT SECONDS='+s);} /***-= Recapcha =-***/ function recapcha(){ for(w=1; w<=60; w++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=2 TYPE=DIV ATTR=TXT:reCAPTCHA')>0){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ROLE:presentation&&CLASS:recaptcha-checkbox-checkmark'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ for(w1=w; w1<w+10; w1++){ //<---Ищем фрейм капчи if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-desc-wrapper')>0){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS=1 TYPE=HTML ATTR=DIR:*ltr extract=htm');a=iimGetExtract(); a=a.match(/(,\d){3,4}/); a=a[0].match(/(\d)/g); Number(a[3])>0?z='нужно выполнить несколько заданий '+a[3]:z=''; iimDisplay(a); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\nFRAME F='+w1+'\nTAG POS=1 TYPE=div ATTR=class:"rc-imageselect-payload" CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('WAIT SECONDS=2'); resize(); // <--- Уменьшаем картинку iimPlayCode('WAIT SECONDS=2'); iimPlayCode('TAB OPEN\nTAB T=2'); /*** -= Отправляем на распознавание =- ***/ for(sk=0; sk<=9; sk++){ iimPlayCode('SET !TIMEOUT 60\nURL GOTO=imacros2.rucaptcha.com/new/'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:getcapcha.php ATTR=NAME:get_id CONTENT=YES'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:getcapcha.php ATTR=NAME:numeric CONTENT=1'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+api); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'cap2.jpg'); iimPlayCode('SET !TIMEOUT 90\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ a=iimGetLastExtract().split('|'); c=a[2].match(/\d+/g); if(c==null){break;}; c=c.sort().join(''); iimDisplay(c); if(iimGetExtract().indexOf("ERROR")<0) break;}} break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); if(Number(c)>0){ for(k=0; k<c.length; k++){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');} iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nEVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0'); //<--- Код нажатия кнопки Продолжить, на некоторых сайтах может отличаться iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nEVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0'); iimPlayCode('WAIT SECONDS=2');}} iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ iimPlayCode('TAB OPEN\nTAB T=2'); iimPlayCode('URL GOTO=rucaptcha.com/res.php?key='+api+'&action=reportbad&id='+a[1]+''); iimPlayCode('WAIT SECONDS=1\nTAB CLOSE');} else{ knopf();} break;}} } function rekws(){ iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:address CONTENT='+btc); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+btc); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=2 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+btc); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=3 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+btc); } function knopf(){ iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=2 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Get*satoshi'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Yes'); }
Отредактировано Koks (02-02-2016 22:21:59)
Отсутствует
Koks, спасибо за код, сразу не поблагодарил, сейчас вижу и новые изменения. Да не так и плохо с модерацией, просто там модераторы, те же работники за 1 копейку проверяют, бывает портачят, и на верно распознанную (от рекапчи уходит когда повторное задание) пишут не верно
Отсутствует
Все благодарности для них, просто я собрал все воедино
InfSub
PRESIDENT
это точно, настоящие профессионалы. Благодаря вам, и остальным ребятам, весь пазл из новой информации, собирается воедино.
Надеюсь на англоязычных версиях нет таких профи
P.S. простите за флуд
Отсутствует
кто знает как связать аймакрос с Capmonstr2, скиньте инструкцию как настроить разгадывание капчи, которая отсылается аймакросом на капчмонстр, а потом разгаданная на кран пожалуйста
Отсутствует
Shejker
Отредактировано Koks (02-02-2016 23:03:17)
Отсутствует
Shejker
скрытый текстВойдите или зарегистрируйтесь, чтобы увидеть скрытый текст.
это понятно, все сделал как там написано, но капча отправляется на распознавание аймакросом на сервис, а нужно чтобы она перехватывалась capmonstrom и отправлялась уже разгаданная обратно
Отсутствует
Shejker
Captcha Sniper
В папке
C:\Program Files (x86)\Captcha SniperX45 есть файл captchasnipertest.html
Чтобы обратиться к Captcha Sniper через iMacros открываем данный файл и выбираем капчу в ответ нам придет строка с разгаданной капчей, которую мы можем извлечь c помощью EXTRACT и вставить затем в нужную нам форму.
думаю что в Capmonstr2 тоже есть что-то похожее
URL GOTO=file:///C:/Program%20Files%20%28x86%29/Captcha%20SniperX45/captchasnipertest.html TAG POS=1 TYPE=INPUT:FILE FORM=ACTION:http://127.0.0.1/ ATTR=NAME:pict CONTENT=C:\CAPTCH\captcha.jpg TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://127.0.0.1/ ATTR=* TAG POS=1 TYPE=BODY ATTR=TXT:* EXTRACT=TXT
Отредактировано Koks (02-02-2016 23:41:15)
Отсутствует
думаю что в Capmonstr2 тоже есть что-то похожее
Капмонстр перехватывает все запросы к антигейт через hosts файл.
Отсутствует
подобных сервисов в инете дофига, проблема одна 90%, а может и 100% этих сайтов используют технологию гугла, если 90%...искал так и не нашел эти остальные 10%, так что, если только 50 запросов то это не проблема)
проблема отпадает даже если будешь использовать прокси)
Подскажи, все сайты, которые используют google speech стараются распознавать слова, а не видели ли подобных сайтов, которые распознают именно буквы, ибо аудио капча солвмедиа выдает буквами?
Отсутствует
аудио капча солвмедиа выдает буквами?
с этим будет проблема, сам тестировал со словомедей, не выходит
а что на счет сайтов, вбей в поиск "speech to text online", если надо будет, добавь в поиск что нибудь из фантазии)
Отсутствует
Protey
Вбивал, пробовал, все стараются по словам распознать (подобрать), а по буквам - так и не нашел
Отсутствует
Народ, есть у кого код который нажимает на наушники для воспроизведения аудио?
Отредактировано Protey (04-02-2016 20:45:07)
Отсутствует