📄 re_route.pas.~16~
字号:
unit Re_route;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdTelnet, ExtCtrls;
type
TForm1 = class(TForm)
IdTelnet1: TIdTelnet;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Button2: TButton;
Timer1: TTimer;
Button3: TButton;
Label3: TLabel;
Label4: TLabel;
procedure IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: string);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Memo1KeyPress(Sender: TObject; var Key: Char);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Clear;
try
IdTelnet1.Disconnect;
IdTelnet1.Host :=Trim(Edit1.Text);//'10.158.12.15'; // edtServer.Text;
IdTelnet1.port :=strtoint(trim(Edit2.Text)); //23; // spnedtPort.Value;
IdTelnet1.Connect;
except
IdTelnet1.Disconnect;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
CommStr:string;
begin
try
CommStr:=Trim(Edit3.Text);
for I := 1 to Length(CommStr) do // Iterate
IdTelnet1.SendCh(CommStr[i]);
IdTelnet1.SendCh(#13);
IdTelnet1.SendCh(#10);
Timer1.Enabled:=true;
except
//Memo1.Clear;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i:integer;
CommStr:string;
begin
try
CommStr:=Trim(memo1.Lines.Strings[Memo1.Lines.count-1]); //login:admin
commstr:=trim(copy(commstr,pos(':',commstr)+1,length(CommStr)));
for I := 1 to Length(CommStr) do // Iterate
IdTelnet1.SendCh(CommStr[i]);
IdTelnet1.SendCh(#13);
IdTelnet1.SendCh(#10);
except
//Memo1.Clear;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
IdTelnet1.Disconnect;
end;
procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
const Buffer: string);
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 TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Button3.Click;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
flagestr,Commstr:string;
begin
try
flagestr:='';
flagestr:=trim(Memo1.Lines.Strings[Memo1.Lines.count-1]);
if pos('password:',flagestr)>0 then
begin
Commstr:='';
Commstr:=Trim(Edit4.Text);
for I := 1 to Length(Commstr) do // Iterate
IdTelnet1.SendCh(Commstr[i]);
IdTelnet1.SendCh(#13);
IdTelnet1.SendCh(#10);
Timer1.Enabled:=false;
end;
except
//Memo1.Clear;
Timer1.Enabled:=true;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -