- - PR -
バーコードリーダで入力したデータを取得するんですが・・・
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-14 02:32
WindowsXP+VB.NETで開発しております。
P/S2のキーボードとUSB(HID)でバーコードリーダを接続しています。 【行えること】 ・バーコードリーダでバーコードを読み取り情報を取得する。 ・取得する内容は"*9999*CRLF"(4桁の数値とアスタリスクと改行)となります。 【質問です】 ・フォーカスがどこにあろうと、バーコードリーダの入力情報を取得することはできますか? (4桁の数値とアスタリスクと改行) ・キーボードからの入力とバーコードリーダからの入力が同時の場合識別できるんでしょうか? 具体的には、メインのフォームがあり、テキストボックスが配置してあります。 そのテキストボックスにフォーカスがあるときに、スキャンすると、テキストボックスに 読み取ったデータが表示されてしまいます。これはNG。(このテキストボックスには他の情報を入力するので) 裏プロセスで、スキャンしたデータをうまく取得できれば、メインフォームへデータを渡して メインフォームで処理できるのですが。 よろしくお願いします。 | ||||
|
投稿日時: 2006-07-14 07:30
まず、バーコード リーダからの入力は、何を通して行われるのでしょうか? 専用のコンポーネントがあれば、そちらでイベントとして取得できるでしょうけど、 ご質問内容から察するに、生で (WM_CHAR を通して) 行われるのでしょうか? (つらいですね) WndProc メソッドをオーバーライドして、WM_CHAR を補足しパラメータを確認してみてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-07-14 07:43
フォーカスについては、USB 接続でもドライバ付きのバーコードリーダーであれば、希望のようなこともできるかと思いますが、そうじゃないときついと思います。
RS-232C 接続のバーコードリーダーとかの方が無難な印象です。 キーボードとの区別は、バーコードリーダーの設定でバーコードの最初に特殊文字を付加してあげることで、バーコードリーダーかの判別に利用できます。 キーボードでも同じキャラクターを送られるとどうしょうもないですが、タイムアウトと組み合わせてやるとほぼうまく認識できるかと思います。 | ||||
|
投稿日時: 2006-07-14 09:04
僕もバーコードを使ったソフトを作ったとき、フォーカスの問題がネックになりましたが最終的には設計上でなんとかなる場合が多かったです。
入力されたデータが*9999*CRLFなら、受け取った側のコントロールがバーコードであることを判別して、特定の処理をさせれば良いですし、入力手順が固定であれば、順次入力させるためのパネルなりを用意する場合が多かったですね。 ↑ と書いたのですが、考えてみれば、この説明って無理がありますね(^_^;)) 多分、Code39 だと思いますが、*が入力された時点で、*CRLF までの入力されたコードを全て横取りしてっ・・・て処理を書いたことがあったもんで(__;) ただし、他の入力では * が入力されないものという前提です。 [ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-07-14 11:59 ] | ||||
|
投稿日時: 2006-07-14 09:40
| ||||
|
投稿日時: 2006-07-14 09:40
| ||||
|
投稿日時: 2006-07-14 09:45
私なら、バーコードで読み込むまで、キーボードの入力ボックスは隠しておくな。 順番的に逆なら、その逆で。 んで、強制的に入力ボックスを表示させるボタンかなんかつけて。 | ||||
|
投稿日時: 2006-07-14 11:27
きーぼーどのにゅうりょくぼっくすってなんですか? あいえむいーみたいなにゅうりょくしえんのつーるぼっくすとまちがえられちゃうからてきすとぼっくすとかにゅうりょくりょういきとかってひょうげんしたほうがいいよ。 |