Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ShellExecute wird erst nach Programmende ausgeführt (https://www.delphipraxis.net/117388-shellexecute-wird-erst-nach-programmende-ausgefuehrt.html)

Diamondback2007 17. Jul 2008 08:50


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-Quellcode:
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ß

Crosspost DF: http://www.delphi-forum.de/viewtopic.php?t=85023

Fussball-Robby 17. Jul 2008 10:29

Re: ShellExecute wird erst nach Programmende ausgeführt
 
Wird nur eine bestimmte Exe nicht angezeigt oder ist es bei allen so? Und funktioniert es, wenn du diese Zeile in ein leeres Projekt einfügst?

Diamondback2007 17. Jul 2008 10:45

Re: ShellExecute wird erst nach Programmende ausgeführt
 
Hmm... Nein mit dieser Datei klappt es einfach nicht. Kann das vielleicht am Handle liegen? Ich übergebe ja praktisch keins...
Mit einer anderendatei klappts. Im leeren projekt nicht.

Diamondback2007 17. Jul 2008 10:48

Re: ShellExecute wird erst nach Programmende ausgeführt
 
Okay... :?
In einem VCl-Projekt klappts... :(
naja muss ich wohl VCL nehmen...

Poseidon 17. Jul 2008 10:51

Re: ShellExecute wird erst nach Programmende ausgeführt
 
Kommt mir irgendwie bekannt vor
Ok, jetzt zu meiner hilfe:
Code:
 ShellExecute(0, nil, PChar('C:\programm.exe'), nil, nil, SW_SHOWNORMAL);
So mach's ich immer, sollte futzen. Shellapi in uses nicht vergessen :wink:

Mist zu spät :wall:

Luckie 17. Jul 2008 10:59

Re: ShellExecute wird erst nach Programmende ausgeführt
 
Zitat:

Zitat von Diamondback2007
Okay... :?
In einem VCl-Projekt klappts... :(
naja muss ich wohl VCL nehmen...

Es muss auch in einem Konsolenprogramm und ohne die VCL gehen.

Poseidon 17. Jul 2008 11:03

Re: ShellExecute wird erst nach Programmende ausgeführt
 
Code:
ShellExecute(0, nil, PChar('C:\programm.exe'), nil, nil, SW_SHOWNORMAL);
Das futzt immer, nich nur bei VCL (bei mir zumindest :mrgreen: )

Diamondback2007 17. Jul 2008 11:10

Re: ShellExecute wird erst nach Programmende ausgeführt
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Diamondback2007
Okay... :?
In einem VCl-Projekt klappts... :(
naja muss ich wohl VCL nehmen...

Es muss auch in einem Konsolenprogramm und ohne die VCL gehen.

Ist mir auch klar.. Es lief ja auch nur plötzlich halt nicht mehr...

Zitat:

Zitat von Poseidon

Jo sry hatte ich vergessen zu posten :oops:

Naja bekommt mein Chef halt ein VCL Programm statt einer Konsole. ;)

ehrlich gesagt habe ich nämlich nicht wirklich Lust da jetzt auf große Fehlersuche zu gehen, da das Programm was ich starte mir schon genug Sorgen bereitet ;)

Trotzdem danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 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