CreateProcess()
-
Hi
Ich würde gerne wissen wie ich den CreateProcess()in meine VCL-Formularanwendung verwende.
Ich möchte ein externes Programm starten. welches sich im im Pfad :
C:\Programme\tool.exe
Via WinExec() bzw ShellExecute() funktioniert es leider nich, deshalb möchte ich CreateProcess verwenden.
Zumal habe ich den Pfad via :
AnsiString toc = PagesDlg->Edit1->Text;
schon vorbereitet wie müsste ich dies nun in der CreateProcess einbinden ?
bedanke mich

-
Was funktioniert denn bei der ShellExecute()-Methode nicht? ShellExecute() und CreateProcess() sind recht ähnlich, wobei CreateProcess() einem nur mehr Kontrolle über den erzeugten Prozess bietet. Wenn (warum auch immer) ShellExecute nicht funktioniert, wird auch CreateProcess nicht fuktionieren.
-
@Phenome
Schau dir mal AnsiString::c_str an. Ich nehme mal an die fehlermeldung lautete "Cannot convert AnsiString to char*" oder so ähnlich.
Ein Hinweis: Bei fehlern poste bitte immer die vollständige Fehlermeldung des Compilers mit oder beschreibe das Fehlverhalten nachvollziehbar.
-
AnsiString toc = PagesDlg->Edit1->Text; if (PagesDlg->toolcheck->Checked==1) { if (PagesDlg->toolcheckbox2->Checked==1) { ShellExecute(0, "open", "tool.exe", NULL, toc.c_str(), SW_SHOWNORMAL); } if (PagesDlg->toolcheckbox2->Checked==0) { ShowMessage("Einstellungen->Auswahl->Tool : Häckchen fehlt!"); } }Wenn ich diesen Code nun in meinem button einfüge und diesen ausführe passiert rein gar nix. der pfad stimmt zu 100% sowohl auch die tool.exe
ebenfalls hatte ich den ShellExecute sammt strings in einen Leeren button eingefügt und er startet das programm nicht.
Der Debugger gibt mir auch keine Fehlermeldungen oder andere Error's. Ich raffs leider nit also wollt ich nun die Ausführung via CreateProcess starten, wenn also jdm so nett wäre mir den Code mit dem Obrigen Pfad gestalten könnte.
Danke sehr
-
Du könntest mal den Rückgabewert auswerten.
Gruß
Alexander
-
Werte doch einfach mal den Rückgabewert von ShellExecute aus.
http://msdn2.microsoft.com/en-us/library/bb762153.aspx
Wozu brauchst du eigentlich toc? Ich hoffe du weißt, dass das nur das Arbeitsverzeichnis und nicht der Pfad zu deiner exe ist?
-
FAQ - externes Programm starten