使用 Qt 判断 PC 是不是退出待机状态

Posted

技术标签:

【中文标题】使用 Qt 判断 PC 是不是退出待机状态【英文标题】:Tell if PC comes out of standby using Qt使用 Qt 判断 PC 是否退出待机状态 【发布时间】:2012-04-29 07:43:46 【问题描述】:

是否有一种跨平台的方式,使用 Qt 来判断计算机是否已退出待机或休眠状态。

我需要能够检测计算机何时退出待机状态才能重置/继续进程。在这种情况下,它是通过串行端口连接到 GPS。

【问题讨论】:

我不知道直接的方法,但是设置一个QTimer每秒触发一次如何,每次触发时,记录当前时间并将其与之前触发的时间进行比较。如果差异远大于 1 秒,则可能是计算机处于睡眠状态,这就是为什么插槽没有被“按计划”调用的原因。 @Jeremy Friesner 这是一个创造性的解决方案。 @JeremyFriesner:很好的解决方案!但是不要使用系统时间 - 用户可以随意更改它,从而导致虚假行程。 (KDE 的kwin 有这个问题。)相反,由于您手边有 GPS 装置,请改用 GPS 时间。 @JeremyFriesner:“如果差异远大于 1 秒,那么大概”不,这是个坏主意。然后大概是什么东西占用了 CPU 或者试图以小块的方式分配 15 GB 的 RAM,并且系统真的很忙向您发送计时器消息。 1 秒系统范围的“打嗝”在 Linux 和 Windows 上并不少见。但是,如果您增加延迟(例如 1 分钟),那么您的应用可能会错过计算机休眠不到一分钟的情况。 @Sigterm:好点。也许最好的检查就是“GPS 连接是否处于活动状态?” 【参考方案1】:

根据http://comments.gmane.org/gmane.comp.lib.qt.general/39649 的讨论,似乎没有可靠的跨平台方式来执行此操作。链接的讨论提供了一些关于如何通过监听平台信号在 windows 和 mac 上执行此操作的说明。

【讨论】:

以上是关于使用 Qt 判断 PC 是不是退出待机状态的主要内容,如果未能解决你的问题,请参考以下文章

如何检查系统是不是处于待机模式?

待机模式下的定时器会怎样? [关闭]

待机模式下的定时器会怎样? [关闭]

平板电脑处于待机状态时,我的 GPS 应用程序是不是可以继续在后台运行?

Qt中子窗口全屏显示与退出全屏

笔记本如何在合上盖子后再打开时显示登录界面,而不是待机状态