如何以编程方式中止Windows Vista和7中的关闭?

时间:2009-12-15 10:25:49

标签: windows-7 windows-vista shutdown

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

2 个答案:

答案 0 :(得分:2)

如果还有其他方法失败,请记住命令行是shutdown.exe -a;也许你可以使用Process类来调用它。

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

答案 1 :(得分:2)

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

@Konamiman:shutdown.exe -a将中止“预定”关闭是,但不会被调用ExitWindowsEx()

的人“正常”关闭
相关问题