Qt 5.1 Windows 7 - Windows 注销时未调用 aboutToQuit()

Posted

技术标签:

【中文标题】Qt 5.1 Windows 7 - Windows 注销时未调用 aboutToQuit()【英文标题】:Qt 5.1 Windows 7 - aboutToQuit() not called on windows logoff 【发布时间】:2013-12-06 16:14:50 【问题描述】:

如果我正常退出我的应用程序,则会调用 aboutToQuit 并且我可以进行一些清理,但是,如果用户从 Windows 注销,我的应用程序会立即关闭并且永远不会调用 aboutToQuit。

该程序用作登录到服务器的应用程序启动器。每次启动应用程序时,它都会向具有名称的服务器发送一条消息(您从我的应用程序中启动该应用程序)。

通常,用户完成后会关闭应用程序并记录事件。如果他们关闭计算机,我想在 aboutToQuit 中发送应用程序的关闭日志事件,但该函数永远不会被调用。

我已经搜索了选项,但没有将我的应用程序变成 Windows 服务(还没有尝试过),没有任何效果。

有什么想法吗?

【问题讨论】:

是否至少发出了QApplication::commitDataRequest()QApplication::saveStateRequest() 信号? 不,看起来两者都没有发出。 【参考方案1】:

这似乎在 Qt5.2.0 中得到修复,因为我现在在 Windows 注销时收到 QApplication::commitDataRequest() 信号。

【讨论】:

以上是关于Qt 5.1 Windows 7 - Windows 注销时未调用 aboutToQuit()的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 7 上构建 Quazip 0.5.1?

Windows上的Qt 5.7黑屏

Qt 小部件 4.7 与 5.1 [关闭]

Qt Quick——新建一个QML

qwt 无法构建 Windows 8 64 位

Qt 5.1 的模块及其相互依赖关系?