Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Shellexecute + Parameter starten (https://www.delphipraxis.net/150912-shellexecute-parameter-starten.html)

SyntaxXx 30. Apr 2010 07:31


Shellexecute + Parameter starten
 
Also und zwar habe ich jetzt ein Fenster wo ein button drauf ist.
Wenn ich auf diesen button klicke, öffne ich per Shellexecute die "CMD" (Konsole).

Jetzt öchte ich direkt auch noch einen Text dazus chreiben,w elcher sofort augeführt werden soll.
Jetzt dachte ich antürlich, mann könnte das per Parameter machen.

Also habe ich geschaut und bin nun auf folgendes Ergebnis gekommen:

Delphi-Quellcode:
procedure TForm2.Button7Click(Sender: TObject);
begin
ShellExecute(handle, nil, PWideChar('C:\Windows\system32\cmd.exe'), PWideChar('netstat -a'), nil, SW_Show);
end;
Wie ihr sehen könnt wollte ich, das sofort "netstat -a" ausgeführt wird.

Doch leider wenn ich das so starte, öffnet sich nur die Konsole.


Jetzt wollte ich fragen was dara falsch ist.

himitsu 30. Apr 2010 07:49

Re: Shellexecute + Parameter starten
 
Woher soll die CMD.exe denn wissen wie sie diese Parameter interpretieren soll?
Sie denkt natürlich erstmal die Parameter sind an sie geichtet und nicht daß sie es ausführen soll.

Tipp: "cmd /?" anschauen und nachsehn wie du CMD deinen Wunsch richtig mitteilst

"cmd" öffnen und darin "cmd /?" ausführen

SyntaxXx 30. Apr 2010 12:36

Re: Shellexecute + Parameter starten
 
Vielen Dank, habs hin bekommen.

Hier noch für die anderen, die vielleicht das selbe Problem haben:

Delphi-Quellcode:
ShellExecute(handle, nil, PWideChar('C:\Windows\system32\cmd.exe'), PWideChar('cmd /K netstat -a'), nil, SW_Show);

DeddyH 30. Apr 2010 13:01

Re: Shellexecute + Parameter starten
 
Das "cmd" ist in den Parametern aber überflüssig.

HeikoAdams 30. Apr 2010 15:50

Re: Shellexecute + Parameter starten
 
Warum so umständlich und nicht gleich
Delphi-Quellcode:
ShellExecute(handle, nil, PWideChar('C:\Windows\system32\netstat.exe'), PWideChar('-a'), nil, SW_Show);
Wobei man nie vergessen sollte: fest codierte Pfade sind pöhse :mrgreen:

DeddyH 30. Apr 2010 15:52

Re: Shellexecute + Parameter starten
 
Vermutlich, weil bei den meisten Konsolenbefehlen sich die Konsole bei direktem Aufruf nach Abarbeitung wieder schließt ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr.

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