Entwickler-Ecke

Windows API - ShellExecute wird erst nach Programmende ausgeführt


Fabian E. - Mi 16.07.08 13:40
Titel: ShellExecute wird erst nach Programmende ausgeführt
Hallo,

ich habe ein Problem im Zusammenhang mit ShellExecute.

Mit folgender zeile möchte ich in einer Konsolenanwedung eine andere exe öffnen.

Delphi-Quelltext
1:
ShellExecute(0, PChar('open'), PChar(SetupPath), PChar(''), PChar(''), SW_SHOW);                    


Dies klappt allerdings seit neustem nicht mehr. Warum das so ist kann ich nicht sagen, ich habe absolut keine Ahnung.
Das Problem ist, dass die Exe erst gestartet wird nachdem das Konsolenprogramm geschlossen wurde...
Der Code der nach dem Aufruf steht klappt aber wunderbar. Es wird nur kurz der Zeiger für Hintergrundaktivität angezeigt und dann macht das Programm ganz normal weiter...
Bzw auch nicht weil ich darauf warte, dass der Prozess gestartet wurde, was aber ja nicht der Fall ist.

Schließe ich nun das Programm, so wird sofort meine Exe gestartet... :(
Ich habe keinerlei Ahnung was da schief läuft...
Als Rückgabewert von ShellExecute bekomme ich 42.

Vielleicht kann mir ja jemand helfen :)

gruß


BenBE - Do 17.07.08 11:22

http://msdn.microsoft.com/en-us/library/ms681381.aspx

--> Scheint wohl, du hast die richtige Frage gestellt ;-)


Apollo - Do 17.07.08 11:58


Delphi-Quelltext
1:
ShellExecute(0, nil, PChar('C:\Das zu öffnente Programm.exe'), nil, nil, SW_SHOWNORMAL);                    

In uses Shellapi nicht vergessen, sonst wird's nix :wink: