2016-10-31 6 views
0

問題があり、次の問題のためのアプローチが必要です。既存のアイドルアプリケーションの検出

アプリケーション "A"があるとします。このアプリケーション "A"は、ライセンスを持っている場合にのみ使用できます。ライセンスが無料の場合、このアプリケーションを使用してライセンスを「予約」するユーザーが数人います。しかし、時々、ライセンスを "予約"したユーザーは、 "予約しない"ことを忘れてしまいます。

主な質問:ユーザーがX分間(アプリケーションがアイドル状態になっている)にアプリケーションを使用していないかどうかを検出するにはどうすればよいですか? ユーザーがコンピュータ上でアクティブではないことを意味するわけではありません。コンピュータ上の別のアプリケーションを使用していますが、この特定のアプリケーション「A」は使用していません。 (彼は彼がライセンスを使用できるようにログインする必要があります。つまり、彼がアプリケーションを終了しても、アプリケーションを最小限に抑えるか、または単にアプリケーションが他のアプリケーションのバックグラウンドにあり、彼はまだライセンスをポーズしています)。

GetLastInputInfoは、私の状況で私を助けることになるとは思わない。私が望むのは、ユーザーがアプリケーションと対話している場合、情報を得ることだけです。

私はC++を使用しています。 OS:Windows 10 x64bit。

+0

これはWindows 10です。投稿を更新しました。提案していただきありがとうございます。 – Alek

答えて

0

あなたのアプリケーションは、使用しているアプリケーション(おそらくキーアップ/ダウン/ mousemoveはおそらくWM_TIMERまたはWM_PAINTではないかもしれません)に該当すると思われるメッセージの入力キューとフィルタをフックしてから、これらのメッセージのいずれかを受信しました(選択したメッセージの1つが受信されるたびにタイマーを設定します)。

+0

私は、別の方法があることを切望していました。私はフック、メッセージ、コールバック、イベントなどについてもっと読むことができる文章を私に提案すれば、本当に感謝しています。 – Alek

関連する問題