1

バーコード スキャナーでスキャンしたデータをキャプチャする Win CE 5 アプリケーションに取り組んでいます。アプリケーションは、アプリケーションの機能をトリガーする事前定義されたバーコードである「システム バーコード」をサポートする必要があります。

これらのバーコードは、メインフレーム全体で機能する必要があります。そのため、メイン フレームの KeyPreview プロパティを true に設定し、メイン フレームの KeyDown イベントに KeyEventHandler を登録しました。

私の問題は、完全にスキャンされた文字列を取得する方法がわからなかったことです。文字列の長さは 12 文字で、改行で終わります。EventHandler で文字列全体を取得する可能性はありますか?

よろしくお願いします。

4

2 に答える 2

0

すべてではないにしても、ほとんどの Windows CE ベースのバーコード スキャナは、スキャン データをキーボード データとしてデバイス ドライバに挿入します。アプリでそのデータをインターセプトする最も簡単な方法は、ハンドラーをすべてのフォームに接続する必要がなく、処理ロジックの前にコントロールがキーを取得することを心配する必要がないため、キーボード フックを使用することです。これはデスクトップと同じように機能するため、デスクトップのキーボード フックに適用されるコードはすべて有効です (例外として、WinCE の API を含む DLL は coredll.dll です)。

CodeProject に Windows Mobile のキーボード フックの例があり、必要なすべてのベースが得られるでしょう。そこからは、フック ハンドラーで文字列を解析するだけです。

于 2013-03-29T14:01:26.770 に答える
0

Form.KeyPreview プロパティを設定して Key イベントのいずれかを使用すると、スキャナーからのデータを表示できるようになります。ただし、一度に 1 つの「キー」または文字しか表示されません。これらのイベントは、呼び出しごとに 1 つの文字またはキーのみを処理します。アプリから見れば、ユーザーがキーボードのキーを叩くのと何ら変わらないように見えます。

オプションがあり、スキャナを非キーボード エミュレーション モードにして、スキャン イベントに直接フックできる場合は、使用時に GUI とは独立して動作する方法という点で、おそらく結果にはるかに満足するでしょう。仕方。通常、それが可能なデバイスでは、スキャン全体を 1 つのイベントとして受け取ります。

使用しているデバイスに関する詳細を含めることをお勧めします。そうすれば、問題のハードウェアに関連する可能性のあるより具体的なアドバイスを誰かが提供できる可能性があります。

于 2013-03-29T15:55:03.370 に答える