Tuer tous les processus cree par un programme C++
Salut à tous,
J'ai réalisé en C++ un launcher (sous Windows), qui lance un processus grâce à la fonction CreateProcess().
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| // start the child process
if (CreateProcess(NULL, // use cmdline
argv[1], // cmdline
NULL, // process handle inheritance
NULL, // thread handle inheritance
FALSE, // handle inheritance
0, // creation flag
NULL, // parent's environment
NULL, // parent's starting directory
&si, // STARTUPINFO
&pi) == FALSE) // PROCESS_INFO
{
TRACEIT("CreateProcess failed (%d)", GetLastError());
return -1;
} |
Un WaitForSingleObject() sur le handle retourné me permet d'attendre la fin du processus lancé, et de passer à la suite du code. Si je tue le processus lancé, alors le launcher reprend la main, et continue son exécution. Par contre, si je tue le launcher, le processus lancé n'est pas tué.
Existe t il un moyen afin que, si le launcher est tué (via le Gestionnaire de tâches), alors il tue tous les processus qu'il a lancé ?
Merci.