9

我希望能够 1. 从我的应用程序中检测(并且,如果需要 2. 中止)操作系统关闭,最好使用 Windows API。

我知道可以使用命令手动中止关机shutdown -a在最坏的情况下,我可以 ShellExecute 这个,但我想知道是否有更好的方法来以编程方式防止关机。

也许以编程方式通知操作系统即将关闭就足够了 - 如何做到这一点?

4

2 回答 2

6

来自MSDN

WM_QUERYENDSESSION用户选择结束会话或应用程序调用系统关闭函数之一时发送消息。如果任何应用程序返回零,则会话不会结束。WM_QUERYENDSESSION一旦一个应用程序返回零,系统就会停止发送消息。

因此,我的应用程序的 WindowProc 现在处理WM_QUERYENDSESSION消息并返回0.

没想到这么简单;作为奖励,它也适用于 Windows 2000。

于 2009-02-26T10:46:32.370 回答
1

关于“简单地”返回 0 以阻止关闭,如果您想以正确的方式进行操作,它并不那么简单。尤其是在 Vista 上。例如,还请阅读http://msdn.microsoft.com/en-us/library/ms700677(VS.85).aspx

于 2010-03-31T11:20:06.850 回答