2011-02-14 58 views
0

我寫了一個Windows服務,它應該記錄任何系統關閉。 WINAPI提供了SERVICE_CONTROL_PRESHUTDOWN(Vista及更高版本)和SERVICE_CONTROL_SHUTDOWN。但是他們都沒有在我的服務控制處理程序中觸發,該處理程序是在RegisterServiceCtrlHandlerEx()之前註冊的。特別是在系統重啓時沒有任何東西被傳遞給它。處理程序本身起作用,因爲SERVICE_CONTROL_STOP等被正確觸發。如何使用WINAPI跟蹤系統關閉?

是否有其他方式來跟蹤系統關閉而不是使用服務控制處理程序?

+0

你註冊你的處理程序使用RegisterServiceCtrlHandlerEx(http://msdn.microsoft.com/en-us/library/ms685058%28VS.85%29.aspx)? – 2011-02-14 11:10:55

回答

1

您需要調用SetServiceStatus傳遞SERVICE_ACCEPT_SHUTDOWN/SERVICE_ACCEPT_PRESHUTDOWN才能接收關閉控件。