2011-02-14 63 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才能接收关闭控件。