バーコードスキャナーの「ドライバー」を作っています。
この特定のスキャナーは基本的に、何かがスキャンされるたびにキーストロークを生成する USB キーボードです。
これらのキーストロークを、適切なキーボードが送信するキーストロークと区別する方法を見つけたいと思っています。残念ながら、唯一の違いは、スキャナーがキーストロークを非常に高速に生成し、一連のキーアップとキーダウンをほんの一瞬で生成することです。
私が見る方法は、すべての入力をインターセプトし、何らかの形で保存し、少し待ってから、それらのキーストロークをフックチェーンのさらに下に送信するか、スキャナーが生成して処理するものであると想定するグローバルキーボードフックを設定する必要があることです。適切に。
ただし、フックの使用経験がないため、正しい方法がわかりません。遅延キーストロークイベントを渡すために、他のスレッドCallNextHookEx()
以外のメソッドで呼び出すことはできますか? KeyboardProc()
それとも、新しいWM_KEYPRESS
メッセージを手動で生成する必要がありますか? たぶん、このことについてもっと良い方法がありますか?
ありがとう。