この分野で(単一の入力デバイスを使用して)いくつかの調査を行ったところ、ほとんどの場合、メッセージは最初にWM_INPUT、次にWM_KEYDOWNのペアで送信されることがわかりました。したがって、フィルタリングのためにそれらをリンクすること、つまり、対応する WM_KEYDOWN が受信者に送信されないという WM_INPUT フラグが単に可能です (私の場合、最初にすべての WM_KEYDOWN を破棄してから、それらを受信者に送り返す必要があるときはいつでも決定します)。次のすべての WM_KEYDOWN が最後の WM_INPUT に属していると仮定します。
私の質問はまさにその原則に真剣に頼ることができますか? 複数の入力デバイスを使用すると、これらのメッセージが混同されませんか?
その信頼性については、すでに深刻な問題がいくつかあります。2. 複数のデバイスからの入力の場合、WM_INPUT-WM_KEYDOWN のペアが混同されますか? つまり、WM_INPUT、WM_INPUT、WM_KEYDOWN、WM_KEYDOWN のような行列を形成しますか?
また、すべての WM_KEYDOWN を破棄して、すべてのキーボード イベントを自分で生成することは可能でしょうか? 1 つの WM_INPUT から複数の WM_KEYDOWN が発生する可能性があるため (複数の WM_KEYDOWN、1 つの WM_KEYUP)、技術的には非常に困難です。
念のため、私が達成する必要があるのは次のとおりです。すべてのメッセージをそれらの間の時間でフィルタリングする必要があります。すべてのユーザー入力は、キーを押す間の時間間隔によってフィルター処理されます。2 つのメッセージが 50 ミリ秒未満の間隔で送信された場合、最初のメッセージを破棄し、2 番目のメッセージが TTL を超えている間待機し、そうであれば受信者に送信します。難点は、複数の入力デバイスが存在する可能性があり、それらのタイミングが互いに混乱することです。