【问题标题】:How to abort shutdown in Windows Vista and 7 programatically?如何以编程方式在 Windows Vista 和 7 中中止关机?
【发布时间】:2009-12-15 10:25:48
【问题描述】:

link 的第二个示例(在示例部分中)中,有关于使用 WM_QUERYENDSESSION 中止关机的描述。它还指出,这不适用于 XP 之后的 Windows 版本。这与stackoverflow 上另一个question 给出的建议相冲突。正确答案是什么?我没有电脑,所以我无法测试。

【问题讨论】:

    标签: windows-7 windows-vista shutdown


    【解决方案1】:

    一些应用程序的 WM_QUERYENDSESSION 处理错误(没有传递给 DefWindowProc,即使它们不打算阻止关机,它们也错误地返回 0),因此 MS 将其更改为 Vista,您现在需要调用 ShutdownBlockReasonCreate()

    @Konamiman:shutdown.exe -a 将中止“预定”关机,是的,但不会中止调用 ExitWindowsEx() 的人的“正常”关机

    【讨论】:

      【解决方案2】:

      如果其他任何事情都失败了,请记住在命令行中它是shutdown.exe -a;也许你可以使用 Process 类来调用它。

      编辑。当提到 Process 类时,我很高兴地认为问题是关于 .NET 编程的,现在我看到问题和标签中都没有提到 .NET。无论如何,我相信也有一些方法可以从其他编程环境运行可执行文件。

      【讨论】:

      • 你说得对,这是一种可能性。这似乎是一个 hack,所以我希望有其他的可能性。
      猜你喜欢
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2010-12-07
      • 2010-10-07
      • 1970-01-01
      • 2010-11-14
      • 2010-12-20
      相关资源
      最近更新 更多