当程序失去焦点时,WH_FOREGROUNDIDLE停止

时间:2015-01-15 18:57:15

标签: c++ windows idle-processing

我正在尝试从基于表单的程序进行CPU密集型后台处理。 我正在使用WH_FOREGROUNDIDLE来检测空闲。钩子做了一些处理,更新表格并再次等待钩子。

它很有效,直到我点击其他程序,然后钩子停止 如果我单击表单,则空闲挂钩会再次开始。

有解决方法吗?或者我使用错误的方法来实现我的目标?

1 个答案:

答案 0 :(得分:0)

您可以使用GetLastInputInfo来确定当前进程的用户是否空闲。这在例如用于将用户标记为远离的聊天程序中是有用的。但是,它不代表系统范围的空闲状态。但是,在计时器上对此进行测试将允许您仅在用户当前未与应用程序交互时运行您的任务,而不依赖于仅由于用户活动而传递的消息。