检查是否启动了关机

dev*_*ull 5 c++ winapi

什么是win32函数来检查是否启动了关闭?

编辑:我需要在Windows服务(COM)内检查.怎么做?

Dan*_*ski 6

没有实际的Win32功能来检查它.

相反,Windows在WM_QUERYENDSESSION启动关闭时将消息发送到每个应用程序.

您可以响应该消息,例如取消关闭.(虽然除非绝对必要,否则你不应这样做)

在实际关闭之前,将WM_ENDSESSION发送消息.

您应该在此消息之后执行任何清理,因为无法保证系统实际上在关闭之后关闭WM_QUERYENDSESSION.

编辑: 如果你想从服务中收听这些消息,你必须在其中加入更多的工作.

服务通常没有窗口,因此您不能简单地挂钩到现有的窗口消息队列中.相反,您必须创建一个虚拟窗口,它仅用于处理消息并使用它来处理上面的消息.

有关仅消息窗口的详细信息,请参阅MSDN文档.