
24.03.2008, 18:10
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Вот исходник моего старого(простенького) бота ("Команды вводи сам  ")
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ICQClient,ICQWorks, XPMan, ExtCtrls, Menus, ComCtrls,
jpeg;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
GroupBox2: TGroupBox;
Edit5: TEdit;
Label6: TLabel;
ICQ: TICQClient;
XPManifest1: TXPManifest;
Timer1: TTimer;
Label9: TLabel;
Label10: TLabel;
Menu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
Button6: TButton;
GroupBox3: TGroupBox;
Memo1: TMemo;
CheckBox1: TCheckBox;
Image1: TImage;
GroupBox4: TGroupBox;
Pop1: TPopupMenu;
N9: TMenuItem;
RANDOM1: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ICQLogin(Sender: TObject);
procedure ICQConnectionFailed(Sender: TObject);
procedure ICQMessageRecv(Sender: TObject; Msg, UIN: String);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2;
type
ICQmsg=array [1..3] of string;
ICQFormat=object
uin:integer;
Msg:string;
end;
var
strokin:string;
ICQ_bufer:array [1..20] of ICQFormat;
MSGT:string;
LogFile:TextFile;
AnekdotFile:Textfile;
Comands:TextFile;
UinBaz:TextFile;
Drevo:Tlist;
{$R *.dfm}
function find_icq():byte;
var
ch,chcol:byte;
begin
chcol:=0;
for ch:=1 to 10 do
if ICQ_bufer[ch].uin<>0 then chcol:=chcol+1;
find_icq:=chcol;
end ;
procedure TRACE (txts:string);
begin
strokin:='>>'+' {'+txts+'}'+'!';
form1.Memo1.Lines.Add(strokin);
end;
procedure smsik (txts:string);
begin
form1.Memo1.Lines.Add(' <> '+txts);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i:byte;
begin
ICQ.ConvertToPlaintext:=true;
trace('Ожидаем...');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ICQ.UIN:=StrToInt(edit1.Text);
ICQ.Password:=edit2.Text;
ICQ.ICQServer:='login.icq.com';
ICQ.ICQPort:=5190;
icq.Status:=8;
ICQ.Login();
trace('Пробуем соединится...');
icq.Status:=8;
end;
procedure TForm1.ICQLogin(Sender: TObject);
begin
Form1.Enabled:=true;
trace('Подключились...');
Application.MessageBox('Мы удачно подключились!','Внимание! ICQ_BOT говорит:',48);
end;
procedure TForm1.ICQConnectionFailed(Sender: TObject);
begin
Form1.Enabled:=true;
Button1.Enabled:=true;
trace('Соеденение разорвано...');
Application.MessageBox('Мы не смогли соединится!','Внимание! ICQ_BOT говорит:',48);
end;
procedure TForm1.ICQMessageRecv(Sender: TObject; Msg, UIN: String);
var
i,j:byte;
begin
Memo1.Lines.Add('|| '+'['+UIN+']'+' ='+' '+MSG);
ICQ.RequestInfo(StrToInt(UIN));
ICQ.SendAuthResponse(StrToInt(UIN),true,'yes');
for i:=1 to 20 do
if ICQ_bufer[i].uin=0 then
begin
ICQ_bufer[i].uin:=strtoint(uin);
ICQ_bufer[i].msg:='Privet';
break;
end;
timer1.Enabled:=true;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
trace('Выходим...');
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
bufer:array [1..20] of ICQFormat;
i,j:byte;
begin
timer1.Interval:=StrToInt(edit5.Text);
for i:=1 to 20 do
for j:=i+1 to 20 do
begin
if ICQ_bufer[i].uin=0 then
begin
bufer[i]:=ICQ_bufer[i];
ICQ_bufer[i]:=ICQ_bufer[j];
ICQ_bufer[j]:=bufer[i];
end;
end;
if find_icq=0 then
begin
timer1.Enabled:=false;
exit;
end;
label9.Caption:=inttostr(find_icq);
icq.SendMessage(ICQ_bufer[1].uin,ICQ_Bufer[1].msg);
ICQ_bufer[1].uin:=0;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
icq.Status:=1;
button6.Caption:='Отошел';
end;
procedure TForm1.N2Click(Sender: TObject);
begin
icq.Status:=2;
button6.Caption:='Не беспокоить';
end;
procedure TForm1.N3Click(Sender: TObject);
begin
icq.Status:=4;
button6.Caption:='Недоступен';
end;
procedure TForm1.N4Click(Sender: TObject);
begin
icq.Status:=8;
button6.Caption:='В сети';{ICQ.SendMessage(StrToInt(edit3.Text),edit4.Text);
Trace('Бот отправил сообщение'+' '+'['+edit3.Text+']');}
end;
procedure TForm1.N5Click(Sender: TObject);
begin
icq.Status:=16;
button6.Caption:='Занят';
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
menu1.Popup(mouse.CursorPos.X,mouse.CursorPos.y);
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if
form1.ClientHeight=462 then
form1.ClientHeight:=346 else
form1.ClientHeight:=462;
end;
end.
Думаю разберешься - ЭТО так сказать "скелет" простенького бота 
Последний раз редактировалось De-visible; 24.03.2008 в 18:13..
|
|
|