【发布时间】:2009-12-15 10:25:48
【问题描述】:
在link 的第二个示例(在示例部分中)中,有关于使用 WM_QUERYENDSESSION 中止关机的描述。它还指出,这不适用于 XP 之后的 Windows 版本。这与stackoverflow 上另一个question 给出的建议相冲突。正确答案是什么?我没有电脑,所以我无法测试。
【问题讨论】:
标签: windows-7 windows-vista shutdown
在link 的第二个示例(在示例部分中)中,有关于使用 WM_QUERYENDSESSION 中止关机的描述。它还指出,这不适用于 XP 之后的 Windows 版本。这与stackoverflow 上另一个question 给出的建议相冲突。正确答案是什么?我没有电脑,所以我无法测试。
【问题讨论】:
标签: windows-7 windows-vista shutdown
一些应用程序的 WM_QUERYENDSESSION 处理错误(没有传递给 DefWindowProc,即使它们不打算阻止关机,它们也错误地返回 0),因此 MS 将其更改为 Vista,您现在需要调用 ShutdownBlockReasonCreate()
@Konamiman:shutdown.exe -a 将中止“预定”关机,是的,但不会中止调用 ExitWindowsEx() 的人的“正常”关机
【讨论】:
如果其他任何事情都失败了,请记住在命令行中它是shutdown.exe -a;也许你可以使用 Process 类来调用它。
编辑。当提到 Process 类时,我很高兴地认为问题是关于 .NET 编程的,现在我看到问题和标签中都没有提到 .NET。无论如何,我相信也有一些方法可以从其他编程环境运行可执行文件。
【讨论】: