0

ユーザーがバーコード スキャナーから入力を取得する必要があるアプリケーションを開発しています。数秒でデータをスキャンして返す USB タイプです。

いろいろな手法でキーボードからの入力を止めようとしました

テキストボックスを読み取り専用にしましたが、リーダーからの入力を取得できませんでした

管理されたキープレスイベントですが、バーコードリーダーは実際にはキーボードとして機能するため、必要な出力を取得できませんでした

Windowsフォームのテキストボックスに入力を提供する特定の時間でユーザーを制限したり、特定のポートからのみ入力を提供することを制限したりする方法はありますか?

128symbologyバーコードを生成するコードを使用します。

4

1 に答える 1

3

関連: USB HID デバイスから入力を読み取るにはどうすればよいですか?

CodeProject の関連記事: http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard

MSDN の記事: https://msdn.microsoft.com/en-us/library/windows/desktop/ms645543(v=vs.85).aspx

これは重複の可能性があるように見えますが、リンクの腐敗を避けるためにここで要約します。

Raw Inputバーコード スキャナーが HID キーボードとして動作する USB デバイスであることを示し、プログラムのテキスト ボックスがこの 1 つの特定のデバイスからの入力のみを受け入れるようにするため、HID手法を使用できます。ただし、これには、デバイスからの生の HID レポートを処理する必要があります。

初期化中に、ソフトウェアRaw Inputは特定のトップ レベル コレクション (TLC) を持つ HID 入力デバイスから登録します。

利用GetRawInputDeviceList可能な生の入力デバイスを列挙するために使用GetRawInputDeviceInfoし、各デバイスの名前を見つけるために使用します。名前文字列内で USB VID/PID 値を照合できる必要があるため、キーストローク メッセージがバーコード スキャナーからのものかどうかを識別できます。hDeviceこの列挙によって検出された一致するデバイス ハンドルを必ず保存してください。

およびWM_INPUTによってメッセージを処理するように windowproc を拡張し、生の入力ハンドルを以前に決定されたバーコード スキャナーのデバイス ハンドルと照合して、標準キーボードからのメッセージを除外します。GetMessageGetRawInputData

于 2015-02-03T10:40:26.230 に答える