ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

13.10.2009, 00:37
|
|
Новичок
Регистрация: 25.05.2009
Сообщений: 15
Провел на форуме: 269065
Репутация:
6
|
|
АС
Здравствуйте! У меня такой вопрос: позавчера поставил последнюю версию инди, после этого перестал работать модуль АС (_http://antigate.com/delphi.zip), компилируется нормально, но когда нижимаешь "recognize", то выдает ошибку "Проект captcha_example.exe вызвал исключение класса EIdNoDataToRead с сообщением 'No data to read.'" и выделяет строку "raise EIdNoDataToRead.Create(RSIdNoDataToRead);" в модуле IdIOHandler.pas. Если ее закомментить то вообще ничего не происходит и каптча не отправляется. Может быть кто сталкивался - подскажите решение пожалуйста.
|
|
|

13.10.2009, 03:17
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Можно ли получить скриншот экрана НЕ используя getDC(0); ???
Не могу понять, почему на серверах Windows, дедиках, и т.д... эта функция не пашет, может есть рабочая альтернатива?
|
|
|

13.10.2009, 07:57
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
Код:
function recognize (filename: string; apikey: string; is_phrase: boolean; is_regsense: boolean; is_numeric: boolean; min_len: integer; max_len: integer): string;
var
ftype, tmpstr, captcha_id: string;
i: integer;
http: tidhttp;
multi: tidmultipartformdatastream;
begin
if fileexists(filename)=false then begin result:='error: file not found'; exit; end;
ftype:='image/pjpeg';
if strpos(pchar(filename),'jpg')<>nil then ftype:='image/pjpeg';
if strpos(pchar(filename),'gif')<>nil then ftype:='image/gif';
if strpos(pchar(filename),'png')<>nil then ftype:='image/png';
multi:=tidmultipartformdatastream.create;
multi.addformfield('method','post');
multi.addformfield('key',apikey);
multi.addfile('file',filename,ftype);
if is_phrase=true then multi.addformfield('phrase','1');
if is_regsense=true then multi.addformfield('regsense','1');
if is_numeric=true then multi.addformfield('numeric','1');
if min_len>0 then multi.addformfield('min_len',inttostr(min_len));
if max_len>0 then multi.addformfield('max_len',inttostr(max_len));
http:=tidhttp.create(nil);
tmpstr:=http.post('http://antigate.com/in.php',multi);
http.free; multi.free;
deletefile(filename);
captcha_id:='';
if strpos(pchar(tmpstr),'error_')<>nil then begin result:=tmpstr; exit; end;
if strpos(pchar(tmpstr),'ok|')<>nil then captcha_id:=ansireplacestr(tmpstr,'ok|','');
if captcha_id='' then result:='error: bad captcha id';
for i:=0 to 20 do
begin
sleep (5000);
http:=tidhttp.create(nil);
tmpstr:=http.get('http://antigate.com/res.php?key='+apikey+'&action=get&id='+captcha_id);
http.free;
if strpos(pchar(tmpstr),'error_')<>nil then begin result:=tmpstr; exit; end;
if strpos(pchar(tmpstr),'ok|')<>nil then
begin
result:=ansireplacestr(tmpstr,'ok|','');
exit;
end;
end;
result:='error_timeout';
end;
bmp12, Попробуйте функцию напрямую. В новом приложении.
|
|
|

13.10.2009, 09:23
|
|
Участник форума
Регистрация: 14.03.2009
Сообщений: 237
Провел на форуме: 813785
Репутация:
314
|
|
Сообщение от Nightmarе
Можно ли получить скриншот экрана НЕ используя getDC(0); ???
Не могу понять, почему на серверах Windows, дедиках, и т.д... эта функция не пашет, может есть рабочая альтернатива?
Код:
procedure TForm1.GrabScreen;
var
DeskTopDC: HDc;
DeskTopCanvas: TCanvas;
DeskTopRect: TRect;
begin
DeskTopDC := GetWindowDC(GetDeskTopWindow);
DeskTopCanvas := TCanvas.Create;
DeskTopCanvas.Handle := DeskTopDC;
DeskTopRect := Rect(0, 0, Screen.Width, Screen.Height);
Form1.Canvas.CopyRect(DeskTopRect, DeskTopCanvas, DeskTopRect);
ReleaseDC(GetDeskTopWindow, DeskTopDC);
end;
|
|
|

13.10.2009, 14:21
|
|
Новичок
Регистрация: 25.05.2009
Сообщений: 15
Провел на форуме: 269065
Репутация:
6
|
|
Сообщение от Пуховой
bmp12, Попробуйте функцию напрямую. В новом приложении.
Пробовал и так, та же самая ошибка - "No data to read."
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdHttp, IdMultipartFormData, StrUtils;
function recognize(filename: string; apikey: string; is_phrase: boolean; is_regsense: boolean; is_numeric: boolean; min_len: integer; max_len: integer): string;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function recognize (filename: string; apikey: string; is_phrase: boolean; is_regsense: boolean; is_numeric: boolean; min_len: integer; max_len: integer): string;
var
ftype, tmpstr, captcha_id: string;
i: integer;
http: tidhttp;
multi: tidmultipartformdatastream;
begin
if fileexists(filename)=false then begin result:='error: file not found'; exit; end;
ftype:='image/pjpeg';
if strpos(pchar(filename),'jpg')<>nil then ftype:='image/pjpeg';
if strpos(pchar(filename),'gif')<>nil then ftype:='image/gif';
if strpos(pchar(filename),'png')<>nil then ftype:='image/png';
multi:=tidmultipartformdatastream.create;
multi.addformfield('method','post');
multi.addformfield('key',apikey);
multi.addfile('file',filename,ftype);
if is_phrase=true then multi.addformfield('phrase','1');
if is_regsense=true then multi.addformfield('regsense','1');
if is_numeric=true then multi.addformfield('numeric','1');
if min_len>0 then multi.addformfield('min_len',inttostr(min_len));
if max_len>0 then multi.addformfield('max_len',inttostr(max_len));
http:=tidhttp.create(nil);
tmpstr:=http.post('http://antigate.com/in.php',multi);
http.free; multi.free;
deletefile(filename);
captcha_id:='';
if strpos(pchar(tmpstr),'error_')<>nil then begin result:=tmpstr; exit; end;
if strpos(pchar(tmpstr),'ok|')<>nil then captcha_id:=ansireplacestr(tmpstr,'ok|','');
if captcha_id='' then result:='error: bad captcha id';
for i:=0 to 20 do
begin
sleep (5000);
http:=tidhttp.create(nil);
tmpstr:=http.get('http://antigate.com/res.php?key='+apikey+'&action=get&id='+captcha_id);
http.free;
if strpos(pchar(tmpstr),'error_')<>nil then begin result:=tmpstr; exit; end;
if strpos(pchar(tmpstr),'ok|')<>nil then
begin
result:=ansireplacestr(tmpstr,'ok|','');
exit;
end;
end;
result:='error_timeout';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:=recognize('captcha.jpg', Edit1.Text, False, False, False, 0, 0);
end;
end.
|
|
|

14.10.2009, 07:08
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
Indy 10.5.5 / 10.5.6
Товарищи, если у кого-нибудь остались сборки этих версий, выложите, пожалуйста!
SVN отдает уже 10.5.7, не безглючную, надо сказать.
|
|
|

14.10.2009, 08:15
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
ну если ты используешь svn, то знаешь, что всегда можно сделать update с любой прошлой ревизии
|
|
|

14.10.2009, 15:33
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
Кхм... Спасибо. Пользуюсь давно, а вот о возможностях без вашего пинка точно бы не догадался
Еще раз спасибо, нашел нужную ревизию
Что касается antigate:
Код:
function recognize (filename: string; apikey: string; is_phrase: boolean; is_regsense: boolean; is_numeric: boolean; min_len: integer; max_len: integer): string;
var
ftype, tmpstr, captcha_id: String;
i: integer;
http: TIdHTTP;
multi: Tidmultipartformdatastream;
begin
if FileExists(filename)=false then begin result:='ERROR: file not found'; exit; end;
ftype:='image/pjpeg';
if strpos(Pchar(filename),'jpg')<>nil then ftype:='image/pjpeg';
if strpos(Pchar(filename),'gif')<>nil then ftype:='image/gif';
if strpos(Pchar(filename),'png')<>nil then ftype:='image/png';
multi:=Tidmultipartformdatastream.Create;
multi.AddFormField('method','post');
multi.AddFormField('key',apikey);
multi.AddFile('file',filename,ftype);
if is_phrase=true then multi.AddFormField('phrase','1');
if is_regsense=true then multi.AddFormField('regsense','1');
if is_numeric=true then multi.AddFormField('numeric','1');
if min_len>0 then multi.AddFormField('min_len',inttostr(min_len));
if max_len>0 then multi.AddFormField('max_len',inttostr(max_len));
http:=TIdHTTP.Create(nil);
tmpstr:=http.Post('http://antigate.com/in.php',multi);
http.Free; multi.Free;
deletefile(filename);
captcha_id:='';
if strpos(Pchar(tmpstr),'ERROR_')<>nil then begin result:=tmpstr; exit; end;
if strpos(Pchar(tmpstr),'OK|')<>nil then captcha_id:=AnsiReplaceStr(tmpstr,'OK|','');
if captcha_id='' then result:='ERROR: bad captcha id';
for i:=1 to 12 do
begin
sleep (5000);
http:=TIdHttp.Create(nil);
tmpstr:=http.Get('http://antigate.com/res.php?key='+apikey+'&action=get&id='+captcha_id);
http.Free;
if strpos(Pchar(tmpstr),'ERROR_')<>nil then begin result:=tmpstr; exit; end;
if strpos(Pchar(tmpstr),'OK|')<>nil then
begin
result:=AnsiReplaceStr(tmpstr,'OK|','');
exit;
end;
end;
result:='ERROR_TIMEOUT';
end;
На 10.5.7, посл. работать не будет. 10.5.6 - работает.
|
|
|

15.10.2009, 03:43
|
|
Участник форума
Регистрация: 05.02.2009
Сообщений: 133
Провел на форуме: 910039
Репутация:
86
|
|
IdSMTP1.Host:='smtp.mail.ru'; //
IdSMTP1.Port:=2525; //
IdSMTP1.Username:=login; //
IdSMTP1.Password:=pass; //
IdSMTP1.AuthenticationType:=atLogin;
with IdMessage1
do
begin
From.Text :=Tema; //
Recipients.EMailAddresses := qwqwq@mail.ru; //
Subject := qwerty@mail.ru;
if FileExists(Edit1.Text)
then
TIdAttachment.Create(idmessage1.MessageParts,C:\Pr ogram Files\1.txt);
Этот кусок отправет нам файло 1.txt на почту. Подскажите, а как прекрутить к коду, чтоб оно отпровляло не файл, а какую ни буть функцию...Т.Е. нопример скопированную в буфер обмена картинку, или текст?
Будет ли синтаксическе правельно применить след выражение?:
var
Msg: TIdMessage;
begin
Msg.Subject:=?тема сообщения?;
Msg.Recipients.EMailAddresses:=?aka_k4@mail.ru?;
Msg.From.Adress:=?delphi@mail.ru?;
Msg.Body.Text:=SetTextBuf();
Msg.Date:=StrToDate(?01.12.2004?);/
end;
|
|
|

15.10.2009, 11:07
|
|
Участник форума
Регистрация: 07.08.2007
Сообщений: 136
Провел на форуме: 2010588
Репутация:
653
|
|
Помогите решить =) С мну +10
Лабораторна робота № 8 Обчислення площі контуру та координати центра його ваги.
Заданий замкнений контур намалювати на міліметровці, обчислити його площу та координати центра ваги за допомогою простих геометричних формул. Створити програму для обчислення за допомогою модифікованої формули Гріна, порівняти результати (вони повинні співпадати).
9. Замкнений контур розташовується між графіком функції Y=(1+|X|)(2-|X|) та віссю Х у диапазоні Х= -2 -- +2, визначити його площу та координати центра ваги за допомогою модифікованої формули Гріна. Порівняти із ручним розрахунком.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|