检测现有的空闲应用程序

时间:2016-10-31 13:58:09

标签: c++ windows idle-processing

我遇到了问题,我需要一种解决下一个问题的方法:

让我们说有一个应用程序“A”。只有拥有许可证才能使用此应用程序“A”。如果许可证是免费的,有几个用户使用此应用程序并为他们“保留”许可证。但是,有时用户“保留”许可证,忘记“无保留”。

主要问题:如何检测用户是否在X分钟内未使用该应用程序(应用程序处于空闲状态)? 这并不意味着用户在计算机上没有活动 - 他正在使用计算机上的其他应用程序,但他没有使用此特定应用程序“A”。 (用户必须登录才能使用许可证。这意味着即使他退出应用程序,最小化应用程序,或者只是应用程序在其他应用程序的后台,他仍然会提供许可证)

我读到了关于GetLastInputInfo的内容,但我认为它不会对我的情况有所帮助。我想要的只是在用户与应用程序交互时获取信息。

我正在使用C ++。 操作系统:Windows 10 x64bit。

1 个答案:

答案 0 :(得分:0)

你的应用程序如何挂钩输入队列并过滤你认为适用于正在使用的应用程序的消息(可能是keyup / down / mousemove可能不是WM_TIMER或WM_PAINT)然后当你决定它时自从您收到其中一条消息(每次收到所选消息之一时设置一个计时器)以来,当您释放许可证密钥时就已经足够了。