2011-09-20 104 views
1

當Windows中的服務或應用程序啓動,停止以及它是否成功退出或出現錯誤代碼時,我需要跟蹤到日誌。我需要跟蹤哪些進程API來跟蹤服務?

我知道許多服務不會記錄自己的開始和停止時間,或者如果它們正確退出,所以似乎要走的路將不得不在插入到API中的鉤子中,以便在服務/應用程序請求時捕獲一個進程空間並放棄它。

我的問題是我需要掛鉤什麼功能才能完成這個功能,甚至有可能嗎?我需要它在64位的Windows XP和7上運行。

+0

這應該可能是在stackoverflow而不是超級用戶,因爲它是一個編程問題。 –

回答

3

Windows Vista有NotifyServiceStatusChange(),但僅限於單一服務。在較早的版本中,除了輪詢更改或觀看事件日誌外,無法進行此操作。

0

如果您正在尋找用戶空間解決方案,EnumProcesses()將返回當前列表。但它不會以變化表示你,你必須不斷地進行調查並根據差異采取行動。

如果您正在關注特定應用程序或應用程序集,請考慮將它們分配給作業對象,這些都允許您對流程設置限制並對其進行外部管理。我想你甚至可以將資源管理器與一個作業對象關聯起來,那麼用戶啓動的所有任務都會自動與作業對象關聯。也許有東西需要研究。