Qt应用程序阻止系统关闭

3
我有一个运行在Windows XP SP2 x64系统上的Qt 4.6.2应用程序。
当我按下系统的物理电源/关机按钮时,我的应用程序正在运行,但没有任何反应,应用程序不会关闭,系统也不会关机。
如果我去开始菜单并点击关机,那么我的应用程序将关闭,但系统仍然无法正常关机。
只有在我的应用程序关闭后,系统才能以两种方式正确关机。
您有什么想法可以让我的应用程序表现良好,并允许系统正确关机吗?
谢谢, Zac

2
有人因为重新实现QMainWindow :: CloseEvent而遇到了相同的问题。 http://www.qtcentre.org/threads/9653-closeEvent-preventing-shutdown 也许这可以帮助您解决这个问题。 - Exa
一些 Skype 版本在 Linux 上有相同的问题。 - IanH
2个回答

5

阅读有关QSessionManager和QApplication::commitData的内容-这是更Qt的方式


2
你需要在你的QCoreApplication / QApplication派生类中重新实现QCoreApplication :: winEventFilter,并在那里处理 WM_QUERYENDSESSION消息
我不确定WM_QUERYENDSESSION是否会传递到你的应用程序,或者它是否是广播系统消息(我手头没有Windows机器进行测试)。如果你似乎没有收到这个消息,你需要安装一个事件过滤器
无论哪种情况,你都需要正确地响应WM_QUERYENDSESSION - 那是你需要处理的消息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接