問題があり、次の問題へのアプローチが必要です。
アプリケーション「A」があるとしましょう。このアプリ「A」は、ライセンスをお持ちの方のみご利用いただけます。ライセンスが無料の場合、このアプリケーションを使用してライセンスを「予約」するユーザーが数人います。しかし、ライセンスを「予約」したユーザーが、「予約解除」し忘れることがあります。
主な質問:ユーザーがアプリケーションを X 分間使用していない (アプリケーションがアイドル状態である) かどうかをどのように検出できますか? ユーザーがコンピューター上でアクティブでないという意味ではありません。ユーザーはコンピューター上で別のアプリケーションを使用していますが、この特定のアプリケーション "A" は使用していません。(ユーザーは、ライセンスを使用できるようにログインする必要があります。つまり、アプリケーションを終了したり、アプリケーションを最小化したり、アプリケーションが他のアプリケーションのバックグラウンドにあるだけでも、ライセンスを保持したままになります)
GetLastInputInfo について読みましたが、私の状況では役に立たないと思います。私が欲しいのは、ユーザーがアプリケーションと対話している場合に情報を取得することだけです。
私はC++を使用しています。OS: Windows 10 x64bit。