Вторник, 03.12.2024, 18:25 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Anton93, Волк-1024, xXxSh@dowxXx  
Исходник бота(Элементарное демо)
dolphinДата: Пятница, 01.08.2008, 17:16 | Сообщение # 1
Администратор
Сообщений: 906
Статус: Offline
Code

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ICQClient, ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Timer1: TTimer;
ICQClient1: TICQClient;
procedure Button1Click(Sender: TObject);
procedure ICQClient1Login(Sender: TObject);
procedure ICQClient1ConnectionFailed(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);

{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
rec: boolean;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//Проверка на заполненность полей с ICQ аккаунтом
if (Edit1.Text = '') or (Edit2.Text = '') or //пустые поля
(Length(Edit1.Text) < 5) or (Length(Edit2.Text) < 3) //Если UIN меньше 5 символов и пароль меньше 3
then
begin
MessageDlg('Не правельно заполнены поля!',mtInformation,[mbOk],0); //Выводим сообщение об ошибке
Exit;
end;
rec := True; //Удачное соединение
ICQClient1.UIN := StrToInt(Edit1.Text); //забираем UIN
ICQClient1.Password := Edit2.Text; //забираем пароль
ICQClient1.Login(); //Соединяемся с сервером
Memo1.Lines.Add('Соединение с сервером ICQ...'); //Выводим текущее состояние (соединение)
end;

procedure TForm1.ICQClient1Login(Sender: TObject);
begin
if ICQClient1.LoggedIn then //если соединение установлено
begin
Memo1.Lines.Add('Соединение с сервером установлено.'); //Добавляю в Memo1 строку о текущем положении
Timer1.Enabled := True; //Включаю таймер
end;
end;

procedure TForm1.ICQClient1ConnectionFailed(Sender: TObject);
begin
if not rec then Exit; //Если мы нажали на кнопку "Выход", то не нужно пытаться соединиться
Memo1.Lines.Add('Не удалось соединиться с сервером.');
if MessageDlg('Попытаться соединиться еще раз?',mtInformation,[mbOk,mbCancel],0) = mrOk
then
begin
ICQClient1.Login();
Memo1.Lines.Add('Соединение с сервером ICQ...');
end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
ICQClient1.SendKeepAlive; //посылаем KeepAlive (Зачем? Описываль выше :))
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if not ICQCLient1.LoggedIn then
MessageDlg('Соединение с сервером не установлено!',mtInformation,[mbOk],0)
else
begin
rec := False;
ICQCLient1.Disconnect;
Memo1.Lines.Add('Соединение с сервером оборвано.');
Timer1.Enabled := False;
end;
end;

procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);

var
icq: cardinal;
begin
icq := StrToInt(UIN);
Memo1.Lines.Add(UIN + ': ' + Msg); //Добавляем полученное сообщение в Memo1
if Msg='Привет' then
ICQClient1.SendMessage(icq,'Привет') //Отсылаем ответ, мол здравствуйте! Рады вас слышать!
else
ICQClient1.SendMessage(icq,'Извините, мне не о чем с Вами поговорить... :)');
end;

end.
 
ЗаглянувшийДата: Понедельник, 26.01.2009, 14:02 | Сообщение # 2
Группа: Гости



Скажи пожалуйста чайнику, этот код до изменения протокола или после?
 
ЗаглянувшийДата: Вторник, 27.01.2009, 19:22 | Сообщение # 3
Группа: Гости



Протокол меняли уже 2 раза с тех пор,работоспособность зависит от компанента!
 
dolphinДата: Четверг, 29.01.2009, 20:01 | Сообщение # 4
Администратор
Сообщений: 906
Статус: Offline
Меняем только TICQClient на Delphi последние изменение 20 января 2009

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz