カードリーダの読み込みをするには?

解決


 2004-02-09 15:14:52  No: 111730  IP: [192.*.*.*]

winアプリでテキストボックスを用意し、カード(カードリーダはキーボード入力)を読み込ませそのテキストボックスにカードのに入っているデータを表示させます。
その内容をボタンなしで取得し、処理を行いたいと考えてます。
カードを通し、テキストボックスに表示されたデータをボタンイベントなしで処理を行いたいのですが、この場合カードからデータをどうやって取得すればよろしいでしょうか。どこでカードを通したというイベントを取得できますでしょうか。
テキストボックスのイベント(textchangedやkeypressなど)ではカードを通した時点で処理が始まってしまうので、1レコード全て読みきった後で処理を実行できるようにしたいのです。
何かよい方法ありませんでしょうか?

編集 削除
特攻隊長まるるう  2004-02-09 15:54:56  No: 111731  IP: [192.*.*.*]

簡単なのはタイマーで textchanged から十分に時間が経ったら
処理を始めるとか…
確実なのは、カードリーダ側の処理で何かきっかけを作って…
そこから処理を始めれば良いんじゃない?。

編集 削除
岡田 之仁  2004-02-09 15:59:49  No: 111732  IP: [192.*.*.*]

キーボードインターフェースに繋げるカードリーダだと
言うことですネ!

では、別段、何もしなくていいのではないですか?!

カードを通せば、キーボードからキーを入力したのと同じく
フォーカスのあるコントロールに、キーコードが入力されま
すので、そのコントロールが、テキストボックスであれば、
テキストボックスに文字列が表示されます。

で入力の終了を何で行うか・・・
Text1_Change()
で、見ればよいと思います。
文字列長で判断可能かと・・・

※  バーコードリーダーでキーボードインターフェースに繋げる
    タイプのものを使った経験があります。条件は同じです。
    読み込んだ文字列で判断し、次処理へつなげることは、プロ
    グラム次第ですが・・・

ご心配の・・・
> カードを通した時点で処理が始まってしまう
ですが、Text1_Change()の処理で、
1レコードと表現されている部分は、カードから読み込まれた
情報だと思いますが、エンドコードか、所定バイト数を読む事
になっているはずですから、
If Right$(Text1.Text,1)=xxx Then
とか、
If Len(Text1.Text)=yyy Then
とかで判断されれば、すむはずですが・・・
条件に満たない場合、そのままText1_Change()を抜ければよい
はずです。

ご検討下さい。

以上。

編集 削除
 2004-02-09 16:11:55  No: 111733  IP: [192.*.*.*]

特攻隊長まるるう様、岡田 之仁様

ご意見ありがとうございました!
これから試してみたいと思います。
次にご報告するときは解決のチェックができるよう
がんばります。
ありがとうございました!!

編集 削除
 2004-02-09 16:33:00  No: 111734  IP: [192.*.*.*]

無事に処理することが出来ました!!
本当にありがとうございました!!

岡田 之仁様からご教授頂きました方法で
取得することが出来ました。
特攻隊長まるるう様からお教え頂きました
方法でも余裕が出来ましたら検討してみたいと
思います。

本当にお世話になりました!

編集 削除