Windowsで自動繰り返しのキー押下をインターセプトできるようにしたい(そして任意の処理を実行できるようにしたい)。キーボードの自動リピートがどのように実装されているかを知りたいので、どのオプションがあるかを知ることができます。つまり、次の場所で傍受できますか?
- 応用、
- デバイスドライバおよび/または
- ハードウェアレベル
?
更新:自動リピートがハードウェアレベルで(不十分に?)生成され、デバイスドライバーによってオーバーライドされているようです(ここを参照)。
Windowsで自動繰り返しのキー押下をインターセプトできるようにしたい(そして任意の処理を実行できるようにしたい)。キーボードの自動リピートがどのように実装されているかを知りたいので、どのオプションがあるかを知ることができます。つまり、次の場所で傍受できますか?
?
更新:自動リピートがハードウェアレベルで(不十分に?)生成され、デバイスドライバーによってオーバーライドされているようです(ここを参照)。
動作を変更またはフィルタリングするために、フックを使用してキーをインターセプトできます。
SetWindowsHookEx
使用してWH_KEYBOARD
フック プロシージャは、とりわけ、繰り返し回数を受け取ります (キーを押したままにするため) 。
低レベルのキーボード フック ( WH_KEYBOARD_LL
) は繰り返し回数を受信しないことに注意してください。
すべてのウィンドウが同じ trhead で作成されている場合は、スレッド固有のフックを使用して、フック プロシージャを DLL に移動することを避けることができます。
繰り返しカウントはキーボード自体によって生成され、LL フックは繰り返しキーダウン イベントを送信することをぼんやりと覚えていますが、間違っている可能性があります。DOS では、DIN または PS/2 キーボードを抜き差しすると、BIOS または BIOS 呼び出しで設定されたキーのリピート レートと時間がデフォルト値に戻りました。なぜあなたが正確に知る必要があるのか わかりません。
質問を編集することをお勧めします...実際の質問は「${yourLangauge}でWindowsの自動リピートを抑制する方法」です...
私の答えは、私には手がかりがなく、アセンブラー(MASM 80286)でしか実行したことがありません...それでも、BBSで解決策を見つけ(誰かがそれらを覚えていますか)、それを使用しました。メモリから、インターセプトはデバイスドライバレベルで実行する必要があります。
自動リピート(100ドルはアセンブラーだと言っています)の実装は、おそらくそれを抑制することに光を当てることはありません...それとマイクロソフトはそれらのカードを胸のすぐ近くでプレイします。
乾杯。キース。
編集:私はちょうど考えました...テクニックは今ウィンドウのバージョンとさまざまなデバイスの過多の間で異なるかもしれません...おやおや!
ただし、これは「プログラミング関連ではない」ように聞こえます。コントロール パネルの [アクセシビリティ オプション] に移動します。「フィルターキー」グループの下の「設定」を選択します。ここで、そのマシンのそのユーザーの繰り返しキーをオフにすることができます。
これがあなたの探しているものであることを願っています。
PS上記の手順はWindows XP用です。