我想知道如何观察运行或终止的新进程。我可以使用Windows 7 API吗?怎么样?如何观察以Visual C++运行或终止的新进程
我在Windows 7中使用Visual C++并且不想使用.Net Framework。
我想知道如何观察运行或终止的新进程。我可以使用Windows 7 API吗?怎么样?如何观察以Visual C++运行或终止的新进程
我在Windows 7中使用Visual C++并且不想使用.Net Framework。
您可以使用工具帮助库中的Process32First
和Process32Next
。 This MSDN article有一个示例如何获取正在运行的进程的列表。
另一种方法是EnumProcesses function。
虽然你可以使用轮询(即EnumProcesses)来做到这一点,但最好的方法是事件驱动的方法。要做到这一点,你需要使用WMI。这MSDN page gives sample code。
更新显然你可以使用Event Tracing for Windows作为替代,但我个人对此一无所知。
WMI不是必需的。 Windows事件跟踪是一种更有效的选择。但它也是一个PITA来编程。 – arx 2012-04-25 21:33:24
@arx我从来没有听说过事件追踪。感谢您的有用评论。 – 2012-04-25 21:52:17
你能描述一下情景吗?需要监视所有进程是不常见的。通常,您应该只保留流程。 – 2012-04-25 22:09:29
@raymondchen我应该记录新的运行进程或终止进程 – hamed 2012-04-26 10:28:14
但是,为什么你应该记录它们? – 2012-04-26 12:54:41