3

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

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

4

3 に答える 3

4

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

using System.Runtime.InteropServices;

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

struct LASTINPUTINFO 
{
    public uint cbSize;
    public uint dwTime;
}
于 2008-08-21T01:19:35.600 に答える
1

マネージド コード

毎秒マウスの位置を確認してください。ユーザーへの新しいメッセージがある場合は、マウスの動きを検出するまでメッセージを保持します。

アンマネージ コード

マウスとキーボードのフックによるアイドル時間の検出を参照してください

于 2008-08-21T01:18:27.257 に答える
0

応答のおかげで、作業中のアプリケーションに実装するのは非常に簡単なので、GetLastInputInfo関数を使用することになりました。

于 2008-08-21T14:06:23.743 に答える