代码之家  ›  专栏  ›  技术社区  ›  Isaac

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

  •  2
  • Isaac  · 技术社区  · 15 年前

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

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

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

    是否有任何方法检测关闭/重新启动事件并防止系统关闭/重新启动?

    (事件关闭或重新启动并不重要,必须同时取消这两个操作!)

    1 回复  |  直到 15 年前
        1
  •  1
  •   Ian Kemp    15 年前

    你不能。

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

    如果用户告诉系统关闭或重新启动,就会发生这种情况。

    btw,当当前用户注销Windows时,将传递wm_queryendsession。这是一个通知,不多了,如果你以任何其他方式使用它,那么你就是在错误地使用它。