检测现有空闲应用程序

Detect existing idle application

本文关键字:应用程序 检测      更新时间:2023-10-16

我有一个问题,我需要一个解决下一个问题的方法:

假设有一个应用程序"A"。只有在您拥有许可证的情况下才能使用此应用程序"A"。有几个用户使用这个应用程序,并为他们"保留"许可证,如果许可证是免费的。但是,有时"保留"许可证的用户,忘记了"不保留"。

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

我读了GetLastInputInfo,但我不相信它会帮助我的情况。我想要的只是获取用户与应用程序交互的信息。

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

你的应用程序钩子输入队列和过滤器的消息,你认为是适用于正在使用的应用程序(可能keyup/down/mousmove可能不是WM_TIMER或WM_PAINT),然后当你决定它已经足够长了,因为你收到了这些消息之一(设置定时器每次一个选定的消息已被接收),那就是当你释放许可证密钥。