我想阻止用户关闭或重启系统。我的应用程序作为Win32本机服务(由C ++编写)和LocalSystem帐户运行。
我听说过WM_QUERYENDSESSION它的解决方案:创建一个隐藏窗口并捕获WM_QUERYENDSESSION以防止关机。
但是这个解决方案并不是很干净,而且还必须为每个桌面创建一个窗口。所以我必须枚举桌面,并关心桌面何时创建/破坏。所有这些都使情况变得令人讨厌!
有没有办法检测关机/重启事件并阻止系统关机/重启?
(事件关闭或重启并不重要,必须取消它们!)
答案 0 :(得分:1)
你不能。
因为允许程序阻止关机/重启会有点安全漏洞,你不觉得吗?
如果用户告诉系统关机或重启,那就是将要发生的事情。
顺便说一下,当前用户退出Windows时会传递WM_QUERYENDSESSION。这是一个通知,仅此而已,如果您以任何其他方式使用它,那么您错误地使用它。