有没有办法调用
CreateProcess,以致杀死父进程会自动杀死子进程?
也许使用Create Process Flags?
编辑
解决方案是创建作业对象,将父项和子节点都放在作业对象中.没有父母被杀害,孩子被杀.我从这里得到了代码:
Kill child process when parent process is killed
记下@ wilx关于继承句柄的评论.
解决方法
使用作为
Neil says的工作是IMHO最好的方法.您可以通过使用
SetInformationJobObject()
在作业对象上设置
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
,使作业拥有进程死机,使得子进程死机.当您的父进程退出/终止时,作业对象句柄将被关闭.为了使其工作,工作句柄不被子进程继承至关重要.如果您还要跟踪大孩子进程,那么您将必须创建暂停的子进程,将它们添加到您的作业对象中,然后让它们运行.