我想知道如何觀察運行或終止的新進程。我可以使用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