使用 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 是不是退出待机状态的主要内容,如果未能解决你的问题,请参考以下文章