Qt应用程序阻塞系统关闭

时间:2010-08-25 12:52:19

标签: c++ windows qt qt4 shutdown

我有一个Qt 4.6.2应用程序,在Windows XP SP2 x64系统上运行。

当我按下系统上的物理电源/关机按钮时,当我的应用程序运行时,什么都不会发生,应用程序将不会关闭,系统也不会关机。

如果我进入开始菜单并单击关机,那么我的应用程序将关闭,但系统不会关闭。

关闭我的应用程序后,系统会以两种方式关闭。

我可以做些什么来让我的应用程序运行并允许系统正确关闭?

谢谢, 扎克

2 个答案:

答案 0 :(得分:3)

读取超出QSessionManager和QApplication :: commitData - 它更多Qt方式

答案 1 :(得分:2)

您需要在QCoreApplication / QApplication派生类中重新实现QCoreApplication::winEventFilter,并在那里处理WM_QUERYENDSESSION message

我不确定WM_QUERYENDSESSION是否会传送到您的应用程序,或者它是否是广播系统消息(我没有便于测试的Windows机器。)如果您似乎没有收到此消息,您需要安装event filter

在任何一种情况下,您都需要正确响应WM_QUERYENDSESSION - 这是您需要处理的消息。