Решает задачку на сложение двух чисел в капче, как на скрине.
Код:
uses SysUtils;
var tmpDialog,tmpString:string;
var posCaptcha, num1, num2, resultNum, count:integer;
begin
while Engine.Status = lsOnline do begin
tmpDialog := Engine.DlgText;
if (Pos('Активирован штраф', tmpDialog) <> 0) then
begin
tmpString:='';
tmpDialog:=''; // Наверное на делфи это не нужно делать, но у меня привычка.
// Ищем капчу в диалоге
tmpDialog:=Engine.DlgText;
posCaptcha:=pos('<font color=LEVEL>',tmpDialog);
posCaptcha:=posCaptcha+19;
// Выдираем 1 число из капчи
while not (tmpDialog[posCaptcha] = ' ') do begin
tmpString:=tmpString + tmpDialog[posCaptcha];
posCaptcha:=posCaptcha + 1;
end;
num1:=StrToInt(tmpString);
// Выдираем 2 число из капчи
tmpString:='';
posCaptcha:=posCaptcha + 3;
while not (tmpDialog[posCaptcha] = ' ') do begin
tmpString:=tmpString + tmpDialog[posCaptcha];
posCaptcha:=posCaptcha + 1;
end;
num2:=StrToInt(tmpString);
// Решаем
resultNum:=num1 + num2;
print(IntToStr(resultNum));
// Отправляем ответ на капчу
Engine.BypassToServer('00 '+IntToStr(resultNum), True);
count:=count+1;
print ('Капча выскакивала -->'+IntToStr(count)+'<-- раз, но мы ее обошли =)');
end;
Delay (888);
end;
end.