@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

バーコードリーダで入力したデータを取得するんですが・・・

投稿者投稿内容
mura
会議室デビュー日: 2003/08/13
投稿数: 9
投稿日時: 2006-07-14 02:32
WindowsXP+VB.NETで開発しております。
P/S2のキーボードとUSB(HID)でバーコードリーダを接続しています。
【行えること】
・バーコードリーダでバーコードを読み取り情報を取得する。
・取得する内容は"*9999*CRLF"(4桁の数値とアスタリスクと改行)となります。

【質問です】
・フォーカスがどこにあろうと、バーコードリーダの入力情報を取得することはできますか?
 (4桁の数値とアスタリスクと改行)
・キーボードからの入力とバーコードリーダからの入力が同時の場合識別できるんでしょうか?

具体的には、メインのフォームがあり、テキストボックスが配置してあります。
そのテキストボックスにフォーカスがあるときに、スキャンすると、テキストボックスに
読み取ったデータが表示されてしまいます。これはNG。(このテキストボックスには他の情報を入力するので)

裏プロセスで、スキャンしたデータをうまく取得できれば、メインフォームへデータを渡して
メインフォームで処理できるのですが。

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-14 07:30
引用:

muraさんの書き込み (2006-07-14 02:32) より:

・フォーカスがどこにあろうと、バーコードリーダの入力情報を取得することはできますか? (4桁の数値とアスタリスクと改行)
・キーボードからの入力とバーコードリーダからの入力が同時の場合識別できるんでしょうか?


まず、バーコード リーダからの入力は、何を通して行われるのでしょうか?

専用のコンポーネントがあれば、そちらでイベントとして取得できるでしょうけど、
ご質問内容から察するに、生で (WM_CHAR を通して) 行われるのでしょうか? (つらいですね)

WndProc メソッドをオーバーライドして、WM_CHAR を補足しパラメータを確認してみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2006-07-14 07:43
フォーカスについては、USB 接続でもドライバ付きのバーコードリーダーであれば、希望のようなこともできるかと思いますが、そうじゃないときついと思います。

RS-232C 接続のバーコードリーダーとかの方が無難な印象です。


キーボードとの区別は、バーコードリーダーの設定でバーコードの最初に特殊文字を付加してあげることで、バーコードリーダーかの判別に利用できます。

キーボードでも同じキャラクターを送られるとどうしょうもないですが、タイムアウトと組み合わせてやるとほぼうまく認識できるかと思います。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-07-14 09:04
僕もバーコードを使ったソフトを作ったとき、フォーカスの問題がネックになりましたが最終的には設計上でなんとかなる場合が多かったです。

入力されたデータが*9999*CRLFなら、受け取った側のコントロールがバーコードであることを判別して、特定の処理をさせれば良いですし、入力手順が固定であれば、順次入力させるためのパネルなりを用意する場合が多かったですね。


と書いたのですが、考えてみれば、この説明って無理がありますね(^_^;))

多分、Code39 だと思いますが、*が入力された時点で、*CRLF までの入力されたコードを全て横取りしてっ・・・て処理を書いたことがあったもんで(__;)

ただし、他の入力では * が入力されないものという前提です。

[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-07-14 11:59 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-07-14 09:40
引用:

muraさんの書き込み (2006-07-14 02:32) より:
WindowsXP+VB.NETで開発しております。
P/S2のキーボードとUSB(HID)でバーコードリーダを接続しています。
【行えること】
・バーコードリーダでバーコードを読み取り情報を取得する。
・取得する内容は"*9999*CRLF"(4桁の数値とアスタリスクと改行)となります。

【質問です】
・フォーカスがどこにあろうと、バーコードリーダの入力情報を取得することはできますか?
 (4桁の数値とアスタリスクと改行)
・キーボードからの入力とバーコードリーダからの入力が同時の場合識別できるんでしょうか?

具体的には、メインのフォームがあり、テキストボックスが配置してあります。
そのテキストボックスにフォーカスがあるときに、スキャンすると、テキストボックスに
読み取ったデータが表示されてしまいます。これはNG。(このテキストボックスには他の情報を入力するので)

裏プロセスで、スキャンしたデータをうまく取得できれば、メインフォームへデータを渡して
メインフォームで処理できるのですが。

よろしくお願いします。


甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-07-14 09:40
引用:

muraさんの書き込み (2006-07-14 02:32) より:
WindowsXP+VB.NETで開発しております。
P/S2のキーボードとUSB(HID)でバーコードリーダを接続しています。
【行えること】
・バーコードリーダでバーコードを読み取り情報を取得する。
・取得する内容は"*9999*CRLF"(4桁の数値とアスタリスクと改行)となります。

【質問です】
・フォーカスがどこにあろうと、バーコードリーダの入力情報を取得することはできますか?
 (4桁の数値とアスタリスクと改行)
・キーボードからの入力とバーコードリーダからの入力が同時の場合識別できるんでしょうか?

具体的には、メインのフォームがあり、テキストボックスが配置してあります。
そのテキストボックスにフォーカスがあるときに、スキャンすると、テキストボックスに
読み取ったデータが表示されてしまいます。これはNG。(このテキストボックスには他の情報を入力するので)

裏プロセスで、スキャンしたデータをうまく取得できれば、メインフォームへデータを渡して
メインフォームで処理できるのですが。

よろしくお願いします。


ぽてCCP
常連さん
会議室デビュー日: 2006/04/06
投稿数: 30
投稿日時: 2006-07-14 09:45
引用:

muraさんの書き込み (2006-07-14 02:32) より:

裏プロセスで、スキャンしたデータをうまく取得できれば、メインフォームへデータを渡して
メインフォームで処理できるのですが。




私なら、バーコードで読み込むまで、キーボードの入力ボックスは隠しておくな。
順番的に逆なら、その逆で。

んで、強制的に入力ボックスを表示させるボタンかなんかつけて。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-14 11:27
引用:

ぽてCCPさんの書き込み (2006-07-14 09:45) より:
私なら、バーコードで読み込むまで、キーボードの入力ボックスは隠しておくな。
順番的に逆なら、その逆で。

んで、強制的に入力ボックスを表示させるボタンかなんかつけて。


きーぼーどのにゅうりょくぼっくすってなんですか?
あいえむいーみたいなにゅうりょくしえんのつーるぼっくすとまちがえられちゃうからてきすとぼっくすとかにゅうりょくりょういきとかってひょうげんしたほうがいいよ。

スキルアップ/キャリアアップ(JOB@IT)