检查是否启动了关机

时间:2009-08-06 11:31:34

标签: c++ winapi

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

编辑:我需要在Windows服务(COM)中检查它。怎么做?

1 个答案:

答案 0 :(得分:6)

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

相反,Windows会在启动关闭时向每个应用程序发送WM_QUERYENDSESSION消息。

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

在实际关闭之前,会发送WM_ENDSESSION消息。

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

修改 如果你想从服务中收听这些消息,你必须在其中加入更多的工作。

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

有关message-only windows的详细信息,请参阅MSDN文档。