ВНИМАНИЕ! данные функции взяты «как есть» и авторами данного проекта пока что не тестировались. Поэтому протестировавших просьба поделиться впечатлениями, если что-то не работает, постараемся оперативно исправить.
В программу добавлены функции распознавания Капчи, которые работают с сервисом AntiGate.com
Соответственно, чтобы пользоваться ими вам нужно иметь аккаунт на сервисе и оплатить его услуги.
1 2 3 4 5 6 7 8 9 |
function RecognizeAGStream(ImageData: TMemoryStream; AGKey: String; var CaptchaRes: String; MinLen: integer; MaxLen: integer; Numeric: integer; Phrase: integer; RegSense: integer; Calc: integer; Russian: integer): Integer; - //распознать капчу сохраненную в поток. function RecognizeAGFile(ImageFile: String; AGKey: String; var CaptchaRes: String; MinLen: integer; MaxLen: integer; Numeric: integer; Phrase: integer; RegSense: integer; Calc: integer; Russian: integer): Integer;- //распознать капчу из файла формата bmp; function RecognizeAGLink(ImageURL : String; AGKey: String; var CaptchaRes: String; Cookies: String; MinLen: integer; MaxLen: integer; Numeric: integer; Phrase: integer; RegSense: integer; Calc: integer; Russian: integer): Integer - //распознать капчу по ссылке function GetBalanceAG(AGKey: String): String; - //получить ваш баланс на сервисе Antigate.com. function ReportBadAG(AGKey: String; CaptchaID: Integer): String; - //сообщить сервису о неверно распознанной капче. |
Параметры функции:
- ImageData – поток, содержащий каптчу
- ImageFile – путь к файлу каптчи
- ImageURL – ссылка на каптчу
- AGKey – ключ сервиса AntiGate.com для распознавания
- Cookies – при распознавании по URL можно передать в функцию куки, для открытия каптчи, когда это необходимо
- CaptchaRes – буффер, в который попадает текст каптчи, либо сообщение об ошибке
- MinLen – помечает минимальную длину текста каптчи
- MaxLen – 0 – без ограничений, помечает максимальную длину каптчи
- Phrase – 0 — без ограничений, 1 помечает что каптча состоит из нескольких слов
- Regsense – 0 — текст капчи не чувствителен к регистру, 1 помечает что текст каптчи чувствителен к регистру
- Numeric – 0 — допустимы любые символы, 1 помечает что текст каптчи состоит только из цифр, 2 помечает что на каптче нет цифр
- Calc – 0 — вычислять не нужно, 1 помечает что цифры на каптче должны быть высчитаны
- Russian – 0 — любой язык, 1 помечает что вводить нужно только русский текст, 2 – русский или английский
Функция RecognizeAG возвращает:
- Номер каптчи (CaptchaID) – в случае успеха
- 0 (ноль) – при ошибке
Примеры:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
Procedure testOnClick(); var R:Trect; CaptchaRes :string;//буффер, в который попадает текст каптчи, либо сообщение об ошибке ImageData:TMemoryStream; bmp:TBitmap; CaptchaID : integer; begin R.Top := 200; R.Bottom := 600; R.Left := 300; R.Right := 1200; ImageData := TMemoryStream.Create(); GlobalScreenShot.Start; sleep(200); GlobalScreenShot.SaveAreaToStream(r, ImageData);//сохраняем кусок шаблона с координатами в структуре r в поток ImageData. CaptchaID := RecognizeAGStream(ImageData,'23452345', CaptchaRes,0, 0, 0, 1, 0,0, 0))); GlobalScreenShot.Stop; ImageData.free; GlobalScreenShot.Start; sleep(200); GlobalScreenShot.SaveAreaToFile('c:\kjksg.bmp',r);//сохраняем кусок шаблона с координатами в структуре r в файл. CaptchaID := RecognizeAGFile('c:\kjksg.bmp', '23452345', CaptchaRes, 0, 0, 0, 0, 0, 0, 0); GlobalScreenShot.Stop; EVE.Start; sleep(1000); if DockButton.FindPicture then //если нашли шаблон begin if DockButton.SaveToFile('c:\kjksg.bmp') then//сохраняем его в файл begin CaptchaID := RecognizeAGFile('c:\kjksg.bmp', '23452345', CaptchaRes, 0, 0, 0, 0, 0, 0, 0); end; end; EVE.Stop; ImageData := TMemoryStream.Create(); EVE.Start; sleep(1000); if DockButton.FindPicture then //если нашли шаблон begin if DockButton.SaveToStream(ImageData) then//сохраняем его в поток begin CaptchaID := RecognizeAGStream(ImageData,'23452345', CaptchaRes,0, 0, 0, 1, 0,0, 0))); end; end; EVE.Stop; ImageData.free; |