2

キーボード フック用の優れたライブラリを作成したいと考えています。メソッド SetWindowsHookEx を使用していますが、アプリのメイン スレッドがビジー状態の場合、システムの KeyDown イベントで呼び出されるメソッド hookProc が実行されないことに気付きました。他のスレッドが責任を負うように、フックを作成する必要があると思います。それは可能ですか?どうすればいいですか?

4

1 に答える 1

1

LowLevelKeyboardProcのMicrosoftヘルプページには、

フック手順がタイムアウトした場合、システムはメッセージを次のフックに渡します。ただし、Windows 7以降では、フックは呼び出されずにサイレントに削除されます。フックが取り外されているかどうかをアプリケーションが知る方法はありません。

これがあなたに起こっていることだと思います。HookProc関数は非常に高速である必要があります。私の場合は、std::vectorのキーイベントをプッシュするだけです。実際のコードは別のスレッドで実行されます。

于 2012-06-01T17:04:26.533 に答える