2011-04-21 33 views
3

我不知道是否有任何可能的方式獲取或創建一個Windows服務的狀態更改事件。如何響應Windows服務的狀態更改?

我知道ServiceController類沒有事件,但它具有狀態。有什麼方法可以聽到一個事件?

回答

4

這正是NotifyServiceStatusChange function的目的。該文檔說明:

使應用程序能夠在創建或刪除指定服務或其狀態更改時接收通知。

我不確定在託管代碼中是否包含等效事件,但是這一個很容易使用P/Invoke。

但是,請注意,此功能僅在Windows Vista及更高版本中可用。如果您需要定位較早的版本,則可以在this question的其中一個答案中找到解決方案。