Bonjour tout le monde,

Je rencontre actuellement un problème pour la suppression de processus.
Je serai donc fort intéressé par un petit coup de main.

Le but étant de supprimer tous les processus fils d'un processus que j'ai lancé.Ctrl-C dans la console fait çà très bien mais la console n'est pas forcement affichée et je veux que la suppression se passe par un simple clic sur un bouton.

A la base je suis parti sur un CreateProcess tué par un Terminateprocess mais cela ne supprime que le processus père.
J'ai donc changé de stratégie. je crée un process avec createprocess+le flag CREATE_NEW_PROCESS_GROUP pour que tous les process fils appartiennent au mem groupe. Ensuite pour supprimer tout ça, je fais une GenerateConsoleCtrlEvent (CTRL_C_EVENT ou CTRL_BREAK_EVENT) sur le ProcessId du père. En toute logique, le process père et tous ses fils devraient etre tués, non? Aprés la commande, toute la petite bande de processus est toujours là....même le pere. Je comprend pas pourquoi.

Voici les deux fct utilisées:
-CreateProcess(nil,cmd,nil,nil,false,0, nil, nil, startinfo, proc_info)
-GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,proc_info.dwProcessId);

Une idée?

Merci d'avance.