ユーザーが現在アイドル状態かどうかを確認する方法はありますか?

StackOverflow https://stackoverflow.com/questions/19185

質問

インターネット上には、ユーザーが現在アイドル状態であり、これが次の場合に Windows が NotifyIcon.BalloonTipShown コマンドの動作を変更することを示すドキュメントがいくつかあります。 キーボードとマウスのイベントをチェックすることで検出されました. 。現在、システム トレイでほとんどの時間を費やすアプリケーションに取り組んでいますが、時折複数のバルーン ヒントがポップアップするため、ユーザーが現在システム トレイから離れている場合にバルーン ヒントを見逃さないようにしたいと考えています。システム。現在表示されているバルーンチップは新たに表示すると破棄されるため、ユーザーが離れている場合は表示を控えたいと考えています。

そのため、アプリケーションがシステム トレイに最小化されている場合に、ユーザーが現在アイドル状態であるかどうかを確認する方法はありますか?

役に立ちましたか?

解決

Win32はどうですか? LASTINPUTINFO 関数?

using System.Runtime.InteropServices;

[DllImport("User32.dll")] 
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

struct LASTINPUTINFO 
{
    public uint cbSize;
    public uint dwTime;
}

他のヒント

マネージドコード

マウスの位置を毎秒チェックします。ユーザーに新しいメッセージがある場合は、マウスの動きが検出されるまでメッセージを押し続けてください。

アンマネージコード

見る マウスとキーボードのフックを使用したアイドル時間の検出

ご返答ありがとうございます。私が作業しているアプリケーションに実装するのは非常に簡単なので、最終的に GetLastInputInfo 関数を使用することにしました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top