Moin!
Hm, wie man das mit D2010 und möglicherweise Indy10 macht, weiß ich nicht.
Aber da bisher keiner was beizutragen hatte: ich habe mal in meinem QT-Archiv gewühlt, irgendwann hatte ich auch mal was mit der IdTelnet-Kompo zu tun, allerdings D7pro und Indy9...
Hier mal so im Groben:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85:
| type TConnectionTask = ( ctDisconnect, ctQuery );
TMainForm = class(TForm) LC: TIdTelnet; edHost: TEdit; edPassword: TEdit; BtnQuery: TButton; BtnDisconnect: TButton; procedure LCDataAvailable(Sender: TIdTelnet; const Buffer: String); procedure LCConnected(Sender: TObject); procedure BtnQueryClick(Sender: TObject); procedure BtnDisconnectClick(Sender: TObject); procedure FormCreate(Sender: TObject); private FConnectionTask: TConnectionTask; FReceiveBuffer: String; procedure SetConnectionTask(const Value: TConnectionTask); public property ConnectionTask: TConnectionTask read FConnectionTask write SetConnectionTask; end;
var MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.LCConnected(Sender: TObject); begin LC.WriteLn(edPassword.Text); case FConnectionTask of ctQuery: begin LC.WriteLn('dir /st/conn'); LC.WriteLn('dir /st/wa/th'); end; ctDisconnect: LC.WriteLn('do /o/m/d'); end; LC.WriteLn('exit'); end;
procedure TMainForm.LCDataAvailable(Sender: TIdTelnet; const Buffer: String); begin FReceiveBuffer := FReceiveBuffer +Buffer; if (NOT Sender.Connected) then if (FConnectionTask > ctDisconnect) then with TStringList.Create do try CommaText := UpperCase(FReceiveBuffer); while ( (Count > 0) and (Strings[0] <> 'DSL-CH-1') ) do Delete(0); if (Count >= 6) then begin edConTime.Text := Strings[5]; Delete(0); end; while ( (Count > 0) and (Strings[0] <> 'DSL-CH-1') ) do Delete(0); if (Count >= 4) then edAvgRx.Text := Strings[3]; finally Free; end; end;
procedure TMainForm.SetConnectionTask(const Value: TConnectionTask); begin FConnectionTask := Value; FReceiveBuffer := ''; LC.Connect; end;
procedure TMainForm.BtnQueryClick(Sender: TObject); begin ConnectionTask := ctQuery; end;
procedure TMainForm.BtnDisconnectClick(Sender: TObject); begin ConnectionTask := ctDisconnect; end; |
Irgendwas habe ich damals mit meinem Router veranstaltet, frag mich nicht was...

Hat aber geklappt.
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.