Fórum telnet no delphi #221225

20/03/2004

0

como eu faco para criar uma aplicacao para eu poder conectar em um servidor usando comandos telnet?? :cry:


Nilol

Nilol

Responder

Posts

03/05/2004

Janbaceiredo

Ai amigo...
Eu consegui fazer um exemplo de telnet funcionar com esse codigo fonte abaixo....
ele foi feito em Delphi 6
Espero que ajude....
O codigo pode ser melhorado, esse é apenas um exemplo.
Obs: Não copie esse codigo no seu ambiente Delphi por que ele possui algumas componentes de terceiros....
Caso queira fazer isso faça as devidas alterações....
Se precisar de ajuda....
E só falar....

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, SUIForm, SUIImagePanel, SUIGroupBox, SUIButton,
StdCtrls, SUIEdit, SUIMemo, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdTelnet, Spin;

type
TForm1 = class(TForm)
suiForm1: TsuiForm;
suiGroupBox1: TsuiGroupBox;
suiGroupBox2: TsuiGroupBox;
edtServer: TsuiEdit;
Label1: TLabel;
Label2: TLabel;
btnConectar: TsuiButton;
btnDesconectar: TsuiButton;
suiGroupBox3: TsuiGroupBox;
Memo: TsuiMemo;
Label4: TLabel;
IdTelnet1: TIdTelnet;
lblStatus: TLabel;
spnPorta: TSpinEdit;
btnLimpar: TsuiButton;
btnSair: TsuiButton;
procedure btnConectarClick(Sender: TObject);
procedure btnDesconectarClick(Sender: TObject);
procedure MemoKeyPress(Sender: TObject; var Key: Char);
procedure IdTelnet1Connected(Sender: TObject);
procedure IdTelnet1Connect(Sender: TObject);
procedure IdTelnet1DataAvailable(Sender: TIdTelnet;
const Buffer: String);
procedure btnLimparClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure IdTelnet1Disconnect(Sender: TObject);
procedure btnSairClick(Sender: TObject);
procedure edtServerKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnConectarClick(Sender: TObject);
begin
IdTelnet1.Host:= edtServer.Text;
IdTelnet1.Port:= spnPorta.Value;
IdTelnet1.Connect;
end;

procedure TForm1.btnDesconectarClick(Sender: TObject);
begin
IdTelnet1.Disconnect;
end;

procedure TForm1.MemoKeyPress(Sender: TObject; var Key: Char);
begin
if IdTelnet1.Connected then
IdTelnet1.SendCh(key);
key:= #0;
end;

procedure TForm1.IdTelnet1Connected(Sender: TObject);
var
msg : string;
begin
msg:= ´Servidor CONECTADO à: ´;
msg:= msg + edtServer.Text;
lblstatus.Caption:= msg;
btnconectar.Enabled:= False;
btndesconectar.Enabled:= True;
btnSair.Enabled:= False;
spnPorta.Enabled:= False;
end;

procedure TForm1.IdTelnet1Connect(Sender: TObject);
var
msg : string;
begin
msg:= ´Conectado à maquina: ´;
msg:= msg + edtServer.Text;
lblstatus.Caption:= msg;
end;

procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
const Buffer: String);
Const
CR = #13;
LF = 10;
var
Start, Stop : integer;
begin
if Memo.Lines.Count = 0 then
Memo.Lines.Add(´´);

Start:= 1;
Stop:= Pos(CR, Buffer);
if Stop = 0 then
Stop:= Length(Buffer) + 1;

while Start <= Length(Buffer) do
begin
Memo.Lines.Strings[Memo.Lines.Count - 1]:=
Memo.Lines.Strings[Memo.Lines.Count - 1] + Copy(Buffer, Start, Stop - Start);
if Buffer[Stop] = CR then
begin
Memo.Lines.Add(´´);
{$IFNDEF Linux}
SendMessage(Memo.Handle, WM_KEYDOWN, VK_UP, 1);
{$ENDIF}
end;

Start:= Stop + 1;
if Start > Length(Buffer) then
Break;
if Buffer[Start] = LF then
Start:= Start + 1;
Stop:= Start;

while (Buffer[Stop] <> CR) and (Stop <= Length(Buffer)) do
Stop := Stop + 1;
end;
end;

procedure TForm1.btnLimparClick(Sender: TObject);
begin
Memo.Clear;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
btnconectar.Enabled:= True;
btndesconectar.Enabled:= False;
lblstatus.Caption:= ´Telnet Desconectado...´;
end;

procedure TForm1.IdTelnet1Disconnect(Sender: TObject);
begin
btndesconectar.Enabled:= False;
btnconectar.Enabled:= True;
btnSair.Enabled:= true;
spnPorta.Enabled:= True;
lblStatus.Caption:= ´Telnet Desconectado...´;
end;

procedure TForm1.btnSairClick(Sender: TObject);
begin
close;
end;

procedure TForm1.edtServerKeyPress(Sender: TObject; var Key: Char);
begin
if (key = #13) then
btnConectar.Click;
end;

end.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar