2

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

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

但是这个解决方案不是很干净,还必须为每个桌面创建一个窗口。所以我必须枚举桌面并关心桌面何时创建/销毁。所有这些都让情况变得糟糕!

有什么方法可以检测关机/重启事件并防止系统关机/重启?

(事件是关闭还是重启并不重要,两者都必须取消!)

4

1 回答 1

1

你不能。

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

如果用户告诉系统关闭或重新启动,这就是将要发生的事情。

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

于 2009-08-25T15:40:54.103 回答