カードリーダーが差し込まれているか判断するには?

解決


カード  2006-10-26 00:06:24  No: 133842

はじめまして。
VB.NETでカードリーダーを使ったプログラムを書いています。
カードリーダーがUSBに差し込まれているかどうかを判断するプログラムは
どのように書けばよいのでしょうか。
今は、差し込まれていることを前提にプログラムを書いているので、
もし差し込まれていないと、
以下のポートを開くときの処理に落ちてしまいます。
MscommCard.PortOpen = True

よろしくお願いします。


VB梅  2006-10-26 01:46:17  No: 133843

「カードリーダーがUSBに」ってそもそもなに?
MscommCardってなに?
「以下のポートを開くときの処理に落ちてしまいます。」の落ちるってなに?
システムがダウンするの?
意味わかりません。

かってな解釈するけど
カードリーダと言うものはRS-232C to USB コンバータ
MscommCardは  AxMSComm1(MSCOMM32.OCX)だとすると
指定のCOMポートが無けれポートオープンは出来ないのでエラーとなります。

エラーの場合は
on error GoTo ErrMsg

ErrMsg:
Msgbox "カードがありません"
で回避すれば済むと思います。


カード  2006-10-26 02:18:50  No: 133844

分かりにくい文章ですみません。

>「カードリーダーがUSBに」ってそもそもなに?
カードリーダーの機械がPCに接続されていないときということです。
USBで接続しているのでこのような書き方をしてしまいました。

>MscommCardってなに?
MSCommコントロールのオブジェクト名です。

>「以下のポートを開くときの処理に落ちてしまいます。」の落ちるってなに?
>システムがダウンするの?
エラーメッセージが表示されて、システムダウンしてしまうということです。

VB梅さんの解釈のとおりです。

>エラーの場合は
>on error GoTo ErrMsg

>ErrMsg:
>Msgbox "カードがありません"
 >で回避すれば済むと思います。

ということですが、
カードリーダーがPCに接続されていないときに別の処理がしたいので、
カードリーダーが接続されている状態かを判断したいです。

わかりにくくてすみませんが、お願いします。


VB梅  2006-10-26 02:57:34  No: 133845

>エラーメッセージが表示されて、システムダウンしてしまうということです。
というのが良くわかりません
システム→ソフトのことですよね?
システム→OSですか?

まったくわからないです^^;

PC→USB(RS232C)→カードリーダー
と矢印で接続されているのですか?

###########################################
on error GoTo ErrMsg
MscommCard.PortOpen = True
Exit sub
ErrMsg:
Msgbox "カードリーダーが接続されていません"
###########################################
これでもエラーでます?
確認願います。


カード  2006-10-26 03:16:46  No: 133846

Try …End Tryでエラーメッセージを表示していたのですが、
VB梅さんのように
MscommCard.PortOpen = True
の部分にだけTry …End Tryを入れれば解決することが分かりました。

全体にTry …End Tryを入れていました。
初心者で、訳の分からないことばかり聞いて申し訳ありませんでした。
ありがとうございました。


カード  2006-10-26 03:24:28  No: 133847

すみません、解決ボタンを忘れていました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加