VB2010で、シリアル通信をするには
シリアルポートをopenしようとすると、エラーで弾かれてしまいます。
どのように対処したら良いですか?
使っているソースコードは、下記の通り。
Private Sub ButtonRsStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonRsStart.Click
Try '例外処理のはじまり
If SerialPort1.IsOpen = True Then 'ポートはオープン済み
MessageBox.Show("すでに" & SerialPort1.PortName & "は接続されています。", "エラー",
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
SerialPort1.PortName = "COM1" 'オープンするポート名を格納
SerialPort1.Open() 'ポートオープン
PORT_STATE.Text = "OPEN"
Catch ex As Exception '例外処理
MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
---------------
エラーが発生する場所は、「Catch 」になります。
エラーメッセージは、「ポート 'COM1' へのアクセスが拒否されました。」です。
何が原因なのか、さっぱり分かりません。
ヒントになりそうな解答を頂けないでしょうか?
No.2ベストアンサー
- 回答日時:
> どのアプリが「COM1」を、使っているのか判る方法は在りますか?
私も知りませんが、デバイスマネージャでモデムのデバイスのプロパティを見て、COM1になっているかどうかですね。
私のマシンではモデムはCOM3になっていますが、設定の変更をすればCOM1にすることもできますので。
あるいはデバイスマネージャで通信関係らしきデバイスのプロパティを調べてみる位しか思いつきません。
ちなみに、私のマシンではデバイスマネージャで「ポート(COMとLPT)」を見ると、COM1もCOM3
も表示されません。
モデムを見るとCOM3になっています。
COM1を指定してプログラムを動かすと「ポート 'COM1' は存在しません。」と表示します。
COM3を指定すると正しくオープンできます。
COM3を他の通信ソフトでオープンしておいて、COM3を指定してプログラムを動かすと「ポート 'COM3' へのアクセスが拒否されました。」と表示します。
この結果から推測すると、xcode_15さんのマシンはCOM1を他のソフトが使用しているということになります。
ありがとうございます。
電源を立ち上げ直したら、オ-プンしました。
どうも、デバッグ中のアプリで弐重にオープンしていた可能性があります。
(推測ですが・・・)
No.1
- 回答日時:
> If SerialPort1.IsOpen = True Then 'ポートはオープン済み
この行にブレークポイントを設定してから実行し、ボタンをクリックしてみてください。
この行が黄色に変わりますから、 F10キーを押して一行ずつ実行してみてください。
多分
> SerialPort1.Open() 'ポートオープン
この行でCatchに飛ぶと思います。
「COM1」は使用できるのでしょうか。
「ポート 'COM1' へのアクセスが拒否されました。」とのことですから、使用できないか使用中ではないでしょうか。
この回答への補足
ご回答を頂きまして、有り難う御座います。
ステップ実行を行っていました。
「COM1」は、別アプリが使っている訳でもないので、使えないというのも理解出来ません。
どのアプリが「COM1」を、使っているのか判る方法は在りますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Teraterm で、「シリアル」の方...
-
USBとLANの違い?
-
COMポートが表示されない
-
VB2010で、シリアル通信をするには
-
クリックをヘッドホンからだけ...
-
Comポート番号変更
-
スイッチで物理ポート毎にパケ...
-
エクセルを開くと、「プリンタ...
-
このネットワークを使うには手...
-
受信パケット0でIPアドレスが取...
-
スイッチングハブにセグメント...
-
MACアドレスからIPアドレスを割...
-
IPアドレスのセグメント
-
PING送信時のUUUとQQQについて
-
ネットワークプリンタに接続で...
-
スイッチングHUBに異なるネット...
-
プロキシの設定が戻る
-
MACアドレスはLAN内で相手を特...
-
WinSockを使ってのプリンタ接続...
-
OSPFのコスト値が同じ場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Teraterm で、「シリアル」の方...
-
COMポートが表示されない
-
キャプチャではIEEE802.1qのタ...
-
Windows10Pro ポート(COMとLPT)...
-
USBとLANの違い?
-
VB2010で、シリアル通信をするには
-
CISCO Catalyst 2960の「Rcv-E...
-
クリックをヘッドホンからだけ...
-
COM接続デバイスのポート番号特...
-
VirtualBoxでのシリアル通信設...
-
ルートポートと代表ポート
-
シーケンサ
-
USB2.0接続のHDD、DVDドライブ...
-
お客さんがスイッチに接続して...
-
vistaで「この USB デバイスは...
-
仮想COMポートの仕組みについて
-
タグVLANのルーティング
-
【超初心者】ポートスキャンの...
-
HUBのカスケード接続について
-
USBメモリを認識するPCとしないPC
おすすめ情報