【发布时间】:2010-10-14 15:34:04
【问题描述】:
有没有办法(在 C++ 和 Windows XP 中)检测一个进程是否产生任何其他进程?
例如,
system32 中的 write.exe 生成 wordpad.exe 然后消失,是否有一个函数可以告诉我该进程是否即将执行此操作?
对于那些感兴趣的人,我使用这部分 msdn 解决了这个问题:
http://msdn.microsoft.com/en-us/library/aa390425(v=VS.85).aspx
【问题讨论】:
-
答案将是特定于 Windows 的,并且与 C++ 无关,尤其是因为 C++ 本身对这些概念一无所知。但我很好奇答案。
-
@John Dibling:你的意思是操作系统特定的吗?我相当确定您可以确定 Linux 下的“父进程”。
-
我知道您可以检测到进程的父进程,但这不是我的问题。我想知道是否可以检测一个进程何时产生另一个进程
-
即使是特定于 Windows 的内容也有点宽泛,因为它需要驱动程序,因此它会因 Windows 的“风格”而异。有关如何在 XP 上完成它(并且应该在较旧的 NT 上工作)的一个相当古老的示例,请参见此处:codeproject.com/KB/system/soviet_protector.aspx
-
AFAIK 没有直接的 API,但您可以随时查看进程(轮询)。检查进程父进程有点无证,而且也不可靠。为什么要这样做?