如何防止系统在Win32服务中关闭或重新启动?

时间:2009-08-25 15:23:15

标签: service events shutdown restart power-management

我想阻止用户关闭或重启系统。我的应用程序作为Win32本机服务(由C ++编写)和LocalSystem帐户运行。

我听说过WM_QUERYENDSESSION它的解决方案:创建一个隐藏窗口并捕获WM_QUERYENDSESSION以防止关机。

但是这个解决方案并不是很干净,而且还必须为每个桌面创建一个窗口。所以我必须枚举桌面,并关心桌面何时创建/破坏。所有这些都使情况变得令人讨厌!

有没有办法检测关机/重启事件并阻止系统关机/重启?

(事件关闭或重启并不重要,必须取消它们!)

1 个答案:

答案 0 :(得分:1)

你不能。

因为允许程序阻止关机/重启会有点安全漏洞,你不觉得吗?

如果用户告诉系统关机或重启,那就是将要发生的事情。

顺便说一下,当前用户退出Windows时会传递WM_QUERYENDSESSION。这是一个通知,仅此而已,如果您以任何其他方式使用它,那么您错误地使用它。