![]() |
cmd-exe die sich selbst mit Parameter aufruft
Hi,
ich progge gerade eine cmd-shell Datei. Diese muss mit Paramatern gestartet werden. Wenn diese Parameter falsch sind, wird das Programm beendet und eine Fehlermeldung ausgegeben. Jetzt würde ich aber gerne das selbe (mein) Programm mit der Hilfe automatisch im Fehlerfall aufrufen. Ich tippe mal auf den Befehl ParamStr(0) und dann bin ich mir nicht sicher ob ShellExecute dann richtig wäre oder muss ich das mit einem anderen Befehl starten ? Grüssle Wolle |
Re: cmd-exe die sich selbst mit Parameter aufruft
Wieso sollte ShellExecute nicht gehen?
|
Re: cmd-exe die sich selbst mit Parameter aufruft
CreateProcess ist (denke ich) eher das richtige weil du dort die pipes umlenken kannst so das die gestarteten Programme ihre Std.-Ausgabe etc. in deiner Console ausgeben können.
@DeddyH: ShellExecute sollte eventuell nicht gehen weil damit ein neues Konsolenfenster geöffnet wird (meine Vermutung) |
Re: cmd-exe die sich selbst mit Parameter aufruft
Müsste man mal ausprobieren :zwinker:
|
Re: cmd-exe die sich selbst mit Parameter aufruft
Zitat:
Ich habe das ganze jetzt soweit auch fast hinbekommen. Da ich aber keine Ahnung von CreateProcess habe, habe ich einfach mal stupide was zusammengesucht und getippt. Jetzt bin ich mir nicht sicher ob das so auch passt oder Schwachsinn ist. Wäre schön, wenn das mal noch jemand anschauen könnte:
Delphi-Quellcode:
Das Verhalten ist jetzt so, dass wenn mein Programm mit einem falschen Parameter gestartet wurde, dann wird der CreateProcess aufgerufen und gibt dann im selben Fenster die Hilfe meines Konsolenprogramms aus. Allerdings bleibt dann noch ein blinkender Cursor stehen und erst nach Drücken der Enter-Taste erscheint wieder der Prompt. Lässt sich das auch noch abstellen, so dass sofort der Prompt kommt ?
var
StartStruct: STARTUPINFO; ProcInfo: PROCESS_INFORMATION; und dann im Programm CreateProcess(nil, PChar(ParamStr(0) + ' /?'), nil, nil, true, 0 , nil, nil, StartStruct, ProcInfo); exit; |
Re: cmd-exe die sich selbst mit Parameter aufruft
Zitat:
weshalb eigentlich der ganze Aufwand? Alle meine Kommandozeilenprogramme arbeiten seit Jahren mit dem Aufbau: lies Parameter wenn Params Ok TudasNötige sonst ZeigeHilfe. Eine nochmaliger Aufruf ist überflüssig. In TudasNötige kann auch noch /? abgefragt werden, um die Hilfe mit Absicht anzuzeigen. Gruss Reinhard |
Re: cmd-exe die sich selbst mit Parameter aufruft
Hallo Reinhard,
da haste absolut recht, das ist wohl das Sinnvollste. Warum kompliziert, wenn's auch einfach geht :wall: Aber prinzipiell würde mich es trotzdem interessieren wie's geht, wär aber nimmer gar so wichtig. Danke und viele Grüssle Wolle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 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