我如何检测用户计算机何时进入休眠状态(笔记本计算机机盖关闭,由于不事件而进入休眠模式等)?
我需要执行此操作以断开用户的TCP连接。基本上,我们有一个简单的聊天应用程序,希望使用户脱机。
最佳答案
没有Qt方法可以检测计算机何时进入休眠或休眠状态。但是有一些平台相关的方法可以做到这一点。
在Windows上,您可以在WindowProc处理程序中监听WM_POWERBROADCAST消息:
LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
if (WM_POWERBROADCAST == message && PBT_APMSUSPEND == wParam) {
// Going to sleep
}
}
在Linux上,您可以将以下shell脚本放在/etc/pm/sleep.d中,该脚本执行带有参数的程序。您可以启动程序并以某种方式通知您的主应用程序:
#!/bin/bash
case $1 in
suspend)
#suspending to RAM
/Path/to/Program/executable Sleeping
;;
resume)
#resume from suspend
sleep 3
/Path/to/Program/executable Woken
;;
esac
对于OS X,您可以看到this。
关于c++ - Qt检测计算机何时进入休眠状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23373507/