Пишем ICQ спаммер  Итак, для написания этой проги нам понадобятся: 
 
 Delphi 7 
 Компонент TICQClient 
 Для начала поставим себе компонент. Делается это очень просто. Загружаем Delphi, выбираем пункт меню Component > Install Component, появится диалоговое окно 
 Нажимаем кнопку обзор и указываем файл ICQClient.pas и жмем OK. После этого в появившемся окне жмем кнопку Compile. Все компонент у нас поставлен. Теперь перейдем к логике программы, а логика такова: 
 1. Коннектимся к ICQ Серверу через прокси 
 2. Получаем новый UIN 
 3. Спаммим 
 4. Убиваем UIN 
 5. Дисконнектимся 
 
 Для начала спроектируем интерфейс проги. Создаем новый проект File > New > Application и сохраняем в какую – нибудь папку. Нам понадобятся 5 GroupBox’ ов, 
 7 Edit ‘ ов, 2 поля Memo, 1 ToolBar c 4 кнопками, 8 надписей (Label), 1 кнопкy, и компоненты ImageList, OpenDialog, ICQClient. Вот примерное расположение, которое у меня получилось 
 Кликаем 2 раза на кнопке Connect и пишем следушие: 
 
 procedure TForm1.ToolButton1Click(Sender: TObject); 
 var 
 w : word; //Описываем переменные 
 i:integer; 
 begin 
 randomize; //Включаем генератор случайных чисел 
 m:=random(100); // Приравниваем m cслучайное число из 100 (оно будет в качестве пароля) 
 i:=strtoint(Edit4.Text); // Приравниваем переменной порт ICQ сервера 
 w:=i; // Приравневаем значение w 
 ICQClient1.ProxyHost:=Edit1.Text; // Заполняем адрес прокси сервера 
 Memo3.Lines.Add('Proxy host ' + Edit1.Text); // Добавляем 
 ICQClient1.ProxyPort:=StrToInt(Edit2.text); 
 Memo3.Lines.Add('Proxy port ' + Edit2.Text); 
 ICQClient1.ICQServer:=Edit3.Text; 
 Memo3.Lines.Add('ICQ host ' + Edit3.Text); 
 ICQClient1.ICQPort:=w; 
 Memo3.Lines.Add('ICQ Port ' + Edit4.Text); 
 ICQClient1.RegisterNewUIN(inttostr(m)); // Регистрируем новый UIN 
 end; 
 Выделяем объект ICQClient и переходим в инспекторе обьктов на события этого объекта. Ищем событие OnNewUINRegistered оно возникает, когда мы зарегистрировали новый UIN. 
 procedure TForm1.ICQClient1NewUINRegistered(Sender: TObject; UIN: String); 
 begin 
 Memo3.Lines.Add('You UIN ' + UIN + 'Password' + inttostr(m)) ;// Вносим в поле UIN и пароль 
 Edit5.Text:=UIN; 
 Edit6.Text:=inttostr(m); 
 ToolButton2.Enabled:=true; // Делаем активными кнопки 
 ToolButton2.Enabled:=true; 
 end; 
 Теперь нужно событие OnNewUINRefused возникающие когда нам не дадут UIN 
 procedure TForm1.ICQClient1NewUINRefused(Sender: TObject); 
 begin 
 Memo3.Lines.Add('You not registred UIN'); // Нам не дают UIN 
 end; 
 На сервер мы законектились, теперь нужно загрузить в поле Memo1 тех, кого мы будем спаммить 
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
 R :Integer; // Описываем переменную 
 begin 
 R:=0; // Приравниваем ее 0 
 if openDialog1.Execute = true then // Открываем диалог 
 begin 
 Memo1.Lines.LoadFromFile(OpenDialog1.FileName); // Загружаем из файла UINы 
 While Memo1.Lines[R] <> '' do // Считаем строки в поле и выводим их в надпись Label 
 begin 
 R:= R + 1; 
 end; 
 Label7.Caption:=IntToStr®; 
 end; 
 end; 
 Теперь нам нужно разослать спам и убить UIN 
 procedure TForm1.ToolButton2Click(Sender: TObject); 
 var 
 I : Integer; // Описываем переменные 
 e: word; 
 begin 
 T:= False; 
 For i:= 0 to Strtoint(label7.Caption) do // Организуем цикл 
 begin 
 If T = True Then Если нажата кнопка стоп 
 begin 
 Break; Обрываем цикл 
 Close; Завершаем работу 
 end; 
 e:=strtoint(Edit7.text); 
 ICQClient1.SendMessage(e, Edit7.Text); // Рассылаем 
 end; 
 ICQClient1.UnregisterUIN(IntToStr(m)); // Убиваем UIN 
 ICQClient1.Disconnect; // Дисконнектимся 
 end; 
 Теперь нужно написать код на кнопку Стоп и Выход 
 procedure TForm1.ToolButton3Click(Sender: TObject); 
 begin 
 T:=True; 
 end; 
 и соответсвенно на выход 
 procedure TForm1.ToolButton4Click(Sender: TObject); 
 begin 
 Close; 
 end; 
 Осталось описать 2 глобальные переменные 
 var 
 Form1: TForm1; 
 M: Integer; 
 T: Boolean;