我正在尝试从基于表单的程序中进行 CPU 密集型后台处理。我正在使用WH_FOREGROUNDIDLE
来检测空闲。钩子进行一些处理,更新表单并再次等待钩子。
在我单击其他程序然后钩子停止之前,它工作得很好。
如果我单击表单,空闲挂钩会再次开始。
有没有解决的办法?或者我使用错误的方法来实现我的目标?
我正在尝试从基于表单的程序中进行 CPU 密集型后台处理。我正在使用WH_FOREGROUNDIDLE
来检测空闲。钩子进行一些处理,更新表单并再次等待钩子。
在我单击其他程序然后钩子停止之前,它工作得很好。
如果我单击表单,空闲挂钩会再次开始。
有没有解决的办法?或者我使用错误的方法来实现我的目标?
您可以使用GetLastInputInfo来确定用户是否在当前进程中处于空闲状态。这在例如将用户标记为离开的聊天程序中很有用。但是,它并不代表系统范围的空闲状态。但是在计时器上对此进行测试将允许您仅在用户当前未与应用程序交互时运行您的任务,而无需依赖仅由于用户活动而传递的消息。