将进程的进程父级更改为explorer.exe

时间:2009-06-02 14:47:30

标签: windows winapi process

我正在使用CreateProcess来执行Notepad.exe,但记事本的进程父级是我自己的AP。当我关闭自己的AP时,记事本的进程父母成了探险家。如何将资源管理器作为此新打开过程的进程父级?

3 个答案:

答案 0 :(得分:3)

这个问题毫无意义。 Windows在其他操作系统可能的方式之间没有真正的父子关系。顺便提一下,保留了有关启动过程的一些信息,但是,在CreateProcess启动代码之外,复制句柄和来自父进程的环境,进程之间没有进一步的特殊关系。它们完全独立地作为同伴运行。

一些任务管理者确实表现出一种神秘关系,暗示父子关系仍然存在,但最终只能通过扫描进程创建信息列表来查看是否可以找到匹配,这意味着其他进程是他们的创建者 - 因而也就是父进程。 / p>

答案 1 :(得分:3)

尝试使用CreateRemoteThread()在explorer.exe的地址空间内创建一个新线程(如果它正在运行),然后让该线程启动记事本。

答案 2 :(得分:0)

没有内置的方法可以将explorer.exe立即设置为父进程。但是,据我所知,您可以使用p / invoke进行一些调用来完成此操作。

以下是an article关于使用p / invoke作为另一个用户启动的实现。这将为您提供p / invoke过程的介绍。然后这里是an article,讨论启动非子进程。您可以将两者中的信息结合起来,以实现您期望的目标。