0

一番上に透明なウィンドウ (WS_EX_TRANSPARENT) が浮かんでいます。

マウスの移動 (画面上の任意の場所) またはキーボード ストロークがある場合は常に、関連情報 (マウスの位置など) を表示する必要があります。

グローバルフックを使用せずにマウス/キーボードのアクティビティをキャプチャすることは可能ですか? ウイルス対策ソフトウェアは、ほとんどの場合、グローバル フックの使用に対して誤ったアラームをトリガーします。

どんなアイデアでも大歓迎です。

4

4 に答える 4

1

GetAsyncKeyStateとGetCursorPosが役立つかもしれません。おそらく、これらの関数を 300 ~ 500 ミリ秒ごとに呼び出して、メイン スレッドにメッセージを投稿するスレッドを作成できます。

于 2011-06-01T09:11:44.123 に答える
0

RegisterRawInputDevicesを介して生の入力メッセージを受信するように登録できます。こちらをご覧ください。RRUZ の受け入れられた回答にいくつかのリンクがあり、1 つは C# 実装を指しています。これはウィンドウメッセージで機能し、フックは関係ありません。

(このメソッドを使用すると、入力元の特定のデバイスに関する情報も取得できるため、複数のキーボードを区別できます。回答として「RegisterRawInputDevices を使用する」というほとんどの質問がここに表示されます。ただし、それを使用して入力をキャプチャすることもできます。 、ソースは気にしません。)

于 2011-06-01T09:19:38.020 に答える
-1

LASTINPUTINFO lastInputInfo = new LASTINPUTINFO(); UInt32 lastInputTick = lastInputInfo.dwTime; return Environment.TickCount - (Int32)lastInputInfo.dwTime

このコード (C#) は、非アクティブ時間 (キーボードとマウスの両方) を返します。そのため、ユーザーが非アクティブであるため、時間を持つことができます。

于 2014-03-20T13:15:50.763 に答える
-1

キーボード/マウス アクティビティの通知を受け取ることができ ( GetLastInputInfo)、カーソル位置を取得できることはほぼ確実です ( GetMouseMovePointsEx)。実際のキーボード ストロークが必要ない場合は、それで十分です。だとしたら仕方ないと思いますが…。

于 2011-06-01T09:06:14.353 に答える