Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi indy tcp server -> shellexecute (https://www.delphipraxis.net/47111-indy-tcp-server-shellexecute.html)

rubooo 6. Jun 2005 20:34


indy tcp server -> shellexecute
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  IdTCPServer1.Active := True;
  Application.ShowMainForm := false;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var user,passwort:String;
begin
  user:= athread.connection.readln;
  if user = 'rubooo' then begin
    athread.Connection.WriteLn('Passwort eingeben: ');
    passwort := athread.connection.ReadLn;
    if passwort = 'test' then athread.connection.writeln('Willkommen!');
    ShellExecute(Application.Handle, 'open', PChar(SysUtils.GetEnvironmentVariable('COMSPEC')),
    PChar(''), nil, SW_show);
  end else begin
    athread.Connection.Disconnect;
  end;
end;

procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
begin
  athread.connection.WriteLn('Username eingeben: ');
end;

end.

dieses code funktioniert auch soweit (ich connecte zu dem server per telnet ) ! aber jetzt habe ich eine frage::
wie kann ich die shell auf dem remotepc verstecken ! oder wie kann ich kommandos an den remotpc senden, per shell ??!!
ich würde mich auch über ein gutes tut über den befehl shellexecute freuen :mrgreen: !

[edit=alcaeus]Code-Tags durch Delphi-Tags ersetzt. Mfg, alcaeus[/edit]

alcaeus 6. Jun 2005 20:49

Re: indy tcp server -> shellexecute
 
Hallo rubooo,

bitte erstelle doch fuer jede der 3 Fragen (ShellExecute, Shell verstecken, Shell remote ausfuehren) einen eigenen Thread, damit es hier nicht drunter und drueber geht. Bedien dich bitte vorher aber der DP-Suche, sowohl zu ShellExecute als auch zur Remote-Shell gabs hier schon ein paar Themen.

Trotzdem noch eine Fragee meinerseits: warum willst du die Shell auf dem Remote-PC verstecken? Ich wuerde sie da lassen, als Indikator dafuer, dass jemand auf den PC zugreift. Vielleicht kannst du uns aber auch einen guten Grund nennen, warum der Benutzer des Client-PCs die Shell nicht sehen soll.

Greetz
alcaeus

SleepyMaster 6. Jun 2005 21:02

Re: indy tcp server -> shellexecute
 
@alcaeus Mal eine Frage meinerseits: Warum söllte der Benutzer des Remote-PC's die Shell sehen? Es gibt bestimmt wesentlich schönere Möglichkeinten ihn darüber zu informieren wenn ein Client verbunden ist - sofern es überhaupt erwünscht ist!

rubooo 6. Jun 2005 21:10

Re: indy tcp server -> shellexecute
 
ich will eine art telnet server coden ! daher soll die shell nicht sichtbar sein ! :cyclops:

un zwar soll er im meinem kleinen heimnetzwerk installiert werden :-D !

alcaeus 6. Jun 2005 21:11

Re: indy tcp server -> shellexecute
 
Zitat:

Zitat von SleepyMaster
@alcaeus Mal eine Frage meinerseits: Warum söllte der Benutzer des Remote-PC's die Shell sehen? Es gibt bestimmt wesentlich schönere Möglichkeinten ihn darüber zu informieren wenn ein Client verbunden ist - sofern es überhaupt erwünscht ist!

Ja, diese schoenere Moeglichkeit gibt es (MessageBox, TrayIcon mit BalloonHint, ...). Allerdings stellt sich jetzt wieder eine Folgefrage (*g*): warum sollte es nicht erwuenscht sein? Ich sehe im Moment keinen Grund, dem Benutzer nicht mitzuteilen, dass jemand gerade auf seinen PC zugreift.

Greetz
alcaeus

SleepyMaster 7. Jun 2005 15:54

Re: indy tcp server -> shellexecute
 
@alcaeus: Ich glaube, die meisten Menschen würde es furchtbar nervern, wenn immer sobald sich jemand zu dem Telnet-Server auf ihrem PC verbindet irgendwo ein "*DING* Jemand greift auf deinen Rechner zu" erscheinen würde.
Bekanntere Telnet-Server-Programme arbeiten nicht so sondern vielmehr mit Log-Dateien die meiner Meinung nach auch sehr viel mehr Sinn ergeben.

@rubooo: probiers ma mit SW_HIDE anstelle von SW_SHOW ;)

rubooo 8. Jun 2005 15:25

Re: indy tcp server -> shellexecute
 
ja danke :wall: ! SW_hide hab ich mittlerweile auch rausgefunden ! :P

aber zu meinem eigentlichen problem ... wie kann ich mir anzeigenlassen was auf dem remotet pc passiert ?!

also wenn ich z.b. mit dem befehl ein (unsichtbare :oops: ) shell ausführe:

Code:
ShellExecute(Application.Handle, 'open', PChar(SysUtils.GetEnvironmentVariable('COMSPEC')),
    PChar('/C dir'), nil, SW_HIDE);
und wie kann ich mir nun das ergebnis dieses kommandos im telnet client anzeigen lassen? :pale:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz