有没有办法(在 C++ 和 Windows XP 中)检测一个进程是否产生任何其他进程?
例如,
system32 中的 write.exe 生成 wordpad.exe 然后消失,是否有函数告诉我进程是否即将执行此操作?
对于那些感兴趣的人,我使用 msdn 的这一部分解决了这个问题:
http://msdn.microsoft.com/en-us/library/aa390425(v=VS.85).aspx
最佳答案
Win32 API 中没有这方面的内容。但是,通过 WMI 和 Win32_ProcessStartTrace 查询支持它。您会在我在 this thread 的回答中找到一些演示查询的 C# 代码。 .用 C++ 编写 WMI 代码相当痛苦,您会在 MSDN 库文章中找到指向必须编写的样板代码的链接。
请注意,这不是特别快。我不清楚 WMI 提供程序从内核获得多少帮助来生成通知,但考虑到它像轮询一样嘎嘎作响的速度。换句话说,当您收到通知时,该过程可能已经在进行中。这对于多任务操作系统类(class)来说是标准的。
关于c++ - 检测子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3934898/