Zitat von
SirThornberry:
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)
Genau das was ich suchte - die Ausgabe soll im selben Konsolenfenster sein.
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:
var
StartStruct: STARTUPINFO;
ProcInfo: PROCESS_INFORMATION;
und dann im Programm
CreateProcess(nil, PChar(ParamStr(0) + ' /?'), nil, nil, true, 0 , nil, nil, StartStruct, ProcInfo);
exit;
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 ?