.exe beenden
-
Hallo ihr!
Ich hab ein Programm geschrieben, indem eine .exe-Datei startet:
STARTUPINFO info; PROCESS_INFORMATION pi; memset(&info, 0, sizeof(info)); info.cb = sizeof(info); info.wShowWindow = SW_HIDE; info.dwFlags = STARTF_USESHOWWINDOW; memset(&pi, 0, sizeof(pi)); CreateProcess(NULL,"RTInterface.exe", NULL,NULL,FALSE,0,NULL,NULL,&info,&pi);
Jetzt möchte ich es auch beenden - habe aber überhaupt keine Ahnung, wie. Wer kann helfen?
-
Hallo
siehe den Rückgabewert von CreateProcess und die Funktion TerminateProcess.
Gehört übrigens ins WinAPI-Forum.bis bald
akari
-
CreateProcess gibt bool zurück...
Sorry, bin erst frisch dabei... Was meinst du damit??
-
OK, dann nicht der Rückgabewert - im letzten Parameter gibt die CreateProcess die Informationen zu dem neu erzeugten Prozess zurück - dessen hProcess Member kannst du an TeminateProcess weiterreichen.
-
Hallo
Ja, und auf diesen Bool-Wert solltest du erstmal überprüfen, ob CreateProcess erfolgreich war.
Wenn es erfolgreich war, kannst du über den letzten Parameter
den Process-Handle bestimmen, um mit diesem TerminateProcess aufzurufen.Ein Beispiel mit vollstängigen Paramtern findest du hier.
Du brauchst aber das Wait... und Close... nicht, sondern dafür wird bei dir irgendwann Terminate... aufgerufen./Edit : Suchen in der MSDN dauert einfach zu lange.
bis bald
akari
-
TerminateProcess(pi.hProcess,0);
Cool - klappt. Danke!
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
TerminateProcess ist aber schon recht brutal. schau dir mal das hier an (besonders der Code am Ende von WebFritzi)
-
Ich kann flenders nur zustimmen. TerminatePorcess sollte nur im extremen Notfall verwendet werden. Die Verwednung kann dazu führen dass Ressourcen nicht freigegeben werden und es kann die Systemstabilität beeinträchtigen.
-
Kennt ihr Paul Panzer?