现想做一个简单的小程序能实现telnet功能, 具体: 用IdTelnet控件,如何设好主机名,pass, 并能发出命令然后收集反来的信息到memo中.
解决方案 »
- 求助!Delphi用户登录+SQL2000数据库的问题!
- 1stclass studio 2007控件下載
- 请问用delphi怎么样可以做象阿里巴巴里面的贸易通软件?
- 控件设成了透明,但是如何让它在移动时能显示下面的控件和背景?
- 一个货仓管理程序,处理速度特别慢!望高手给予"提速"的高招!
- 在Delphi 中如何使用Update 语句 修改 Sql-server中的 money类型数据
- 关于delphi的著名网站
- 请教两个三角以上或星星的
- 帮我看看下面的代码!!
- 怎样利用DELPHI将一文件通过HTTP上传到服务器
- 送分-----200-------简单问题------200---------送分
- SQL Server权限和应用程序权限分配问题!!
playicq上有一个中文telnet的程序,你可以下下来看看
我以前写的时候,也是看demo改的。
TelnetClient
unit mainform;interfaceuses
{$IFDEF Linux}
QGraphics, QControls, QForms, QDialogs, QComCtrls, QStdCtrls,
{$ELSE}
Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls,
{$ENDIF}
windows, messages, spin, SysUtils, Classes, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdTelnet;type
TfrmTelnetDemo = class(TForm)
Memo1: TRichEdit;
edtServer: TEdit;
lblServer: TLabel;
spnedtPort: TSpinEdit;
lblPort: TLabel;
btnConnect: TButton;
btnDisconnect: TButton;
sbrStatus: TStatusBar;
IdTelnetDemo: TIdTelnet;
Button1: TButton;
procedure btnConnectClick(Sender: TObject);
procedure btnDisconnectClick(Sender: TObject);
procedure Memo1KeyPress(Sender: TObject; var Key: Char);
procedure IdTelnetDemoDataAvailable(Buffer: string);
procedure IdTelnetDemoConnected(Sender: TObject);
procedure IdTelnetDemoConnect;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
frmTelnetDemo: TfrmTelnetDemo;implementation{$IFDEF MSWINDOWS}{$R *.dfm}{$ELSE}{$R *.xfm}{$ENDIF}procedure TfrmTelnetDemo.btnConnectClick(Sender: TObject);
begin
IDTelnetDemo.Host := edtServer.Text;
IDTelnetDemo.port := spnedtPort.Value;
IdTelnetDemo.Connect;
end;procedure TfrmTelnetDemo.btnDisconnectClick(Sender: TObject);
begin
IdTelnetDemo.Disconnect;
end;procedure TfrmTelnetDemo.Memo1KeyPress(Sender: TObject;
var Key: Char);
begin
{we simply send the key stroke to the server. It may echo it back to us}
if IdTelnetDemo.Connected then
IdTelnetDemo.SendCh(Key);
Key := #0;
end;procedure TfrmTelnetDemo.IdTelnetDemoDataAvailable(Buffer: string);
{This routine comes directly from the ICS TNDEMO code. Thanks to Francois Piette
It updates the memo control when we get data}
const
CR = #13;
LF = #10;
var
Start, Stop: Integer;
begin
if Memo1.Lines.Count = 0 then
Memo1.Lines.Add(''); Start := 1;
Stop := Pos(CR, Buffer);
if Stop = 0 then
Stop := Length(Buffer) + 1;
while Start <= Length(Buffer) do
begin
Memo1.Lines.Strings[Memo1.Lines.Count - 1] :=
Memo1.Lines.Strings[Memo1.Lines.Count - 1] +
Copy(Buffer, Start, Stop - Start);
if Buffer[Stop] = CR then
begin
Memo1.Lines.Add('');
{$IFNDEF Linux}
SendMessage(Memo1.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 TfrmTelnetDemo.IdTelnetDemoConnected(Sender: TObject);
begin
sbrStatus.SimpleText := 'Connected';
end;procedure TfrmTelnetDemo.IdTelnetDemoConnect;
begin
sbrStatus.SimpleText := 'Connect';
end;procedure TfrmTelnetDemo.Button1Click(Sender: TObject);
begin
idtelnetdemo.Write('dir c:\'+#13);end;end.如果还不清楚
看看这个
http://search.csdn.net/Expert/topic/1431/1431231.xml?temp=.6505243