int system() - Prozess killen

tefla

Erfahrenes Mitglied
Hallo Zusammen,

ich starte aus meinem Programm verschiedene Programm über den Befehl system(), da dieser Befehl einen INTEGER zurück wirft, nehme ich an, dass man diesen Prozess auch wieder killen kann. Wie ?

Hab bei Google leider keine Hilfe gefunden.
 
also jetzt nicht schlagen wenn das falsch ist:-)
Aber ich meine system() liefert nur int werte zurück um anzuzeigen das der Aufruf erfolgreich war, also 0 wenn alles geklappt hat und bei irgendwelchen Fehlern eben andere Werte vermutlich noch Fehler abhängig .
Ich weiß das jedoch leider selbst auch nicht wirklich, daher würde mich das auch mal interessieren.
 
Das kann gut sein. Da muss ich gestehen das ich nicht in die Doku geschaut hab. Bin einfach davon ausgegangen, das es wie bei SetTimer() funktioniert.

Aber es müsste doch trotzdem eine Möglichkeit geben ein Programm zu starten und es wieder aus dem Programm zu beenden.
 
Hallo,

wenn Du es dir leicht machen willst kannst du die tskill.exe benutzen, die laut Microsoft bei den neusten Windows-Versionen dabei ist.

Du könntest also Outlook z.B. mit
system("tskill outlook");
killen.

Wenn Du das ganze lieber selbst machen willst dann solltest du dir die Quelle zu der oberen Methode anschauen:
http://msdn.microsoft.com/msdnmag/issues/02/08/CQA/

(ich gehe mal davon aus dass du Windows benutzt)
 
Es muss doch eine Möglichkeit geben bei einem ShellExecute gibts doch einen HINSTANCE und mit Hilfe von dem den Prozess zu killen oder sauber zu beenden, das ist mir Banane.
 
nimm ShellExecuteEx, wenn du bei den Flags SEE_MASK_NOCLOSEPROCESS setzt kannst du den Prozess über das zurückgelieferte Prozesshandle mit TerminateProcess wieder beenden.

Unbdingt Doku zu ShellExecuteEx anschauen...
 
Zurück