1

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

4

2 回答 2

2

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

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

于 2009-12-15T10:29:49.880 回答
2

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

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

于 2009-12-15T15:09:03.420 回答