我有两个过程,A和B。在某个时候A会创建B。创建B之后,如果A的过程 被杀,我希望B仍然在附近。

我正在使用createProcess()来创建B,而且我似乎找不到任何方法来创建该过程而不是孩子。 ShellexeCuteex()也是如此,但我可能缺少一些标志。

有人知道我可以用来做什么吗?

编辑:我忘了提到两个过程都需要一个句柄或进程ID给另一个

有帮助吗?

解决方案

您可以尝试该过程一个创建过程c,该过程C创建过程B,然后将立即结束进程C(终止)。在过程B中,仅存在有关直接父进程(C的过程ID的运行不多),而不存在有关过程A的信息A。因此,“如果A的过程树被杀死”,则该过程B可能会保持运行。

例如,您启动Process Explorer(请参阅 http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)然后启动总指挥官。从总指挥官开始,您可以启动cmd.exe。从cmd.exe启动notepad.exe。然后在cmd.exe中键入“退出”。终止cmd.exe后,您可以看到Notepad.exe将不再显示在Total Commander(Totalcmd.exe)下。为总司令员(totalcmd.exe)选择Process Explorer“杀死过程树”后,您可以看到Notepad.exe保持运行。

其他提示

您可以将Paramaeter dwCreationFlags设置为CreateProcess API中的Dectached_process。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top