在此link的第二个示例(在示例部分中)中,有一个关于使用WM_QUERYENDSESSION中止关闭的说明。它还指出,这不适用于晚于XP的Windows版本。这与stackoverflow上另一个question给出的建议相矛盾。什么是正确的答案?我也没有电脑,所以我无法测试。
答案 0 :(得分:2)
如果还有其他方法失败,请记住命令行是shutdown.exe -a
;也许你可以使用Process类来调用它。
修改即可。在提到Process类时,我很高兴地认为问题是关于.NET编程的,现在我看到.NET在问题和标签中都没有提到。无论如何,我相信有办法从其他编程环境运行可执行文件。
答案 1 :(得分:2)
某些应用程序错误地处理WM_QUERYENDSESSION(未传递给DefWindowProc,即使他们不打算阻止关闭也错误地返回0)因此MS用Vista更改了它,您现在需要调用ShutdownBlockReasonCreate()
@Konamiman:shutdown.exe -a将中止“预定”关闭是,但不会被调用ExitWindowsEx()
的人“正常”关闭