1

Windowsで自動繰り返しのキー押下をインターセプトできるようにしたい(そして任意の処理を実行できるようにしたい)。キーボードの自動リピートがどのように実装されているかを知りたいので、どのオプションがあるかを知ることができます。つまり、次の場所で傍受できますか?

  • 応用、
  • デバイスドライバおよび/または
  • ハードウェアレベル

更新:自動リピートがハードウェアレベルで(不十分に?)生成され、デバイスドライバーによってオーバーライドされているようです(ここを参照)。

4

3 に答える 3

3

動作を変更またはフィルタリングするために、フックを使用してキーをインターセプトできます。

SetWindowsHookEx 使用してWH_KEYBOARD

フック プロシージャは、とりわけ、繰り返し回数を受け取ります (キーを押したままにするため) 。

低レベルのキーボード フック ( WH_KEYBOARD_LL) は繰り返し回数を受信しないことに注意してください。

すべてのウィンドウが同じ trhead で作成されている場合は、スレッド固有のフックを使用して、フック プロシージャを DLL に移動することを避けることができます。


繰り返しカウントはキーボード自体によって生成され、LL フックは繰り返しキーダウン イベントを送信することをぼんやりと覚えていますが、間違っている可能性があります。DOS では、DIN または PS/2 キーボードを抜き差しすると、BIOS または BIOS 呼び出しで設定されたキーのリピート レートと時間がデフォルト値に戻りました。なぜあなたが正確に知る必要があるのか​​ わかりません。

于 2009-05-18T12:42:06.603 に答える
0

質問を編集することをお勧めします...実際の質問は「${yourLangauge}でWindowsの自動リピートを抑制する方法」です...

私の答えは、私には手がかりがなく、アセンブラー(MASM 80286)でしか実行したことがありません...それでも、BBSで解決策を見つけ(誰かがそれらを覚えていますか)、それを使用しました。メモリから、インターセプトはデバイスドライバレベルで実行する必要があります。

自動リピート(100ドルはアセンブラーだと言っています)の実装は、おそらくそれを抑制することに光を当てることはありません...それとマイクロソフトはそれらのカードを胸のすぐ近くでプレイします。

乾杯。キース。

編集:私はちょうど考えました...テクニックは今ウィンドウのバージョンとさまざまなデバイスの過多の間で異なるかもしれません...おやおや!

于 2009-05-18T09:40:35.427 に答える
0

ただし、これは「プログラミング関連ではない」ように聞こえます。コントロール パネルの [アクセシビリティ オプション] に移動します。「フィルターキー」グループの下の「設定」を選択します。ここで、そのマシンのそのユーザーの繰り返しキーをオフにすることができます。

これがあなたの探しているものであることを願っています。

PS上記の手順はWindows XP用です。

于 2009-05-18T09:49:49.527 に答える