Autor Beitrag
sTk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 70

Win 2000, Win XP
Turbo Delphi Pro, D2005 PE, Lazarus
BeitragVerfasst: Fr 01.06.07 12:58 
Hi,

ich schlage mich gerade etwas mit Telnet herum und benutze da TIdTelnet aus den Indys.
Jetzt hab ich aber ein Problem. Wenn ich einen Befehl vom Client zum Server schicken will und mache dies, wie in der Demo, über eine Eingabezeile, dann funktioniert Alles wie es soll! Wenn ich aber das Gleiche über einen Button, dem ich einen Befehl hinterlegt habe, machen will, dann macht er nach jedem übertragenen Zeichen scheinbar ein <CR> und nichts funktioniert.

Ich will mich übrigens auf einem Linux-Host einloggen.

So funktioniert es:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  i : integer;
  s : string;
begin
  if IdTelnet1.Connected then
    if (key = #13then
    begin
      s := edit1.text;
    for i := 1 to length(s) do
      IdTelnet1.SendCh(s[i]);
      IdTelnet1.SendCh(#13);
      edit1.Clear;
    end;
end;


und so komischerweise nicht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
  i:integer;
begin

  s := 'root';

  if IdTelnet1.Connected then
    for i := 1 to length(s) do
    begin
      IdTelnet1.SendCh(s[i]);
      IdTelnet1.SendCh(#13);
    end;
end;


Wenn ich nun in die Eingabezeile meinen Anmeldenahmen eingebe(in diesem Fall root) und alles mit <ENTER> bestätige, dann kommt es am Server richtig an:

ausblenden Quelltext
1:
login: root					


Wenn ich den Button klicke, dann kommt am Server folgendes an:
ausblenden Quelltext
1:
2:
3:
4:
login: r
o
o
t


Ich benutze Turbo Delphi Professional.
Hoffe irgendjemand kann mir da weiter helfen.

Gruß
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 01.06.07 13:54 
Moin!

Du hast das begin falsch gesetzt: ;)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
  i:integer;
begin
  s := 'root';
  if IdTelnet1.Connected then begin
    for i := 1 to length(s) do
      IdTelnet1.SendCh(s[i]);
    IdTelnet1.SendCh(#13);
  end;
end;

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
sTk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 70

Win 2000, Win XP
Turbo Delphi Pro, D2005 PE, Lazarus
BeitragVerfasst: Fr 01.06.07 14:51 
Eigentlich hab ich das nicht!
Das Begin und End im ursprünglichen Thread beziehen sich auf die for Schleife.
Nach der If-Schleife ist kein Begin/End nötig!

Gruß
sTk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 70

Win 2000, Win XP
Turbo Delphi Pro, D2005 PE, Lazarus
BeitragVerfasst: Fr 01.06.07 14:57 
ok ok Asche auf mein Haupt, jetzt sehe ich, was ich für Müll gemacht habe!!! :autsch:

Naja, wird Zeit, dass Wochenende ist :lol:

Vielen Dank nochmal und ein schönes Wochenende!!!

Gruß