我有一个Qt 4.6.2应用程序,在Windows XP SP2 x64系统上运行。
当我按下系统上的物理电源/关机按钮时,当我的应用程序运行时,什么都不会发生,应用程序将不会关闭,系统也不会关机。
如果我进入开始菜单并单击关机,那么我的应用程序将关闭,但系统不会关闭。
关闭我的应用程序后,系统会以两种方式关闭。
我可以做些什么来让我的应用程序运行并允许系统正确关闭?
谢谢, 扎克
答案 0 :(得分:3)
读取超出QSessionManager和QApplication :: commitData - 它更多Qt方式
答案 1 :(得分:2)
您需要在QCoreApplication / QApplication派生类中重新实现QCoreApplication::winEventFilter,并在那里处理WM_QUERYENDSESSION message。
我不确定WM_QUERYENDSESSION是否会传送到您的应用程序,或者它是否是广播系统消息(我没有便于测试的Windows机器。)如果您似乎没有收到此消息,您需要安装event filter。
在任何一种情况下,您都需要正确响应WM_QUERYENDSESSION - 这是您需要处理的消息。