ShellExecute - Problem
-
Hallo,
ich komm mit dem ShellExecute-Befehl irgendwie nicht so ganz klar. Ich will aus der Anwendung heraus ein anderes Programm starten, das sich im selben Ordner wie die bereits laufende Anwendung befindet.AnsiString pfad = ExtractFilePath(Application->ExeName) + "programmname.exe"; ShellExecute(0, "open", pfad, NULL, NULL, SW_SHOWNORMAL);Zuerst definiere ich den Programmpfad, dann will ich mithilfe von ShellExecute das Programm starten. Aber irgendwie geht das nicht was mach ich falsch??
-
Dort findest du eine nette funktion
http://www.c-plusplus.net/forum/viewtopic.php?t=39256
-
A) kompiliert dein Beispiel doch gar nicht (ShellExecute kann mit AnsiString nichts anfangen) und
hast du mal kontrolliert, ob der Inhalt von pfad korrekt ist?
-
Jansen schrieb:
A) kompiliert dein Beispiel doch gar nicht (ShellExecute kann mit AnsiString nichts anfangen)
wie mach ich das denn?? also wie krieg ich den pfad in den befehl rein??
zu b). ja hab ich schon getestet das ist korrekt was dort angezeigt wird.
-
Du könntest damit anfangen, mal die Fehlermeldung des Compilers zu analysieren.
Und das es nicht nur hier eine Suchfunktion gibt, mit der man sich nach praktischen Beispielen für die korrekte Anwendung umsehen kann, das muss ich dir ja nicht extra sagen.Mal ganz abgesehen vom Link in Acrots Beitrag ...
-
ShellExecute will keinen AnsiString, sondern einen char* haben. Also:
ShellExecute(0, "open", pfad.c_str(), NULL, NULL, SW_SHOWNORMAL);
-
Tatsächlich? Das wusste ausser dir natürlich niemand hier, und es war auch nicht unter o.g. Link zu finden. Deshalb vielen, vielen Dank für deinen fantastischen Beitrag!