• 締切済み

VB2008でCOM10以上のポートをオープンする方法

お世話になります。 VB2008でCOM10以上のポートをオープンする方法を教えて下さい。 VB2005までは \\.\COM10 (\\\\.\COM10) の様に設定すれば良かったのですが、 VB2008ではこの方法は使えない様です。 参考HP http://www.technoveins.co.jp/dev/vb2005/serialport.htm 何方かご存知であれば教えて頂きたいと思います。 宜しくお願い致します。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

Dim sPorts() as String = SerialPort。GetPortNames() のsPortsの配列の中には COM10: に相当するポート名は取得できないのでしょうか?

mame_2008
質問者

補足

早速のご返答有難う御座います。 今の所上手くいかないようです。 また別の方法が在りそうでしたらお願い致します。 エラー内容 : パラメータが間違っています 仮想ポートである事が原因でしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBからオープン可能なCOMポート数

    VBのアプリケーションを作成して、PCのCOMポートをオープンしてモデム制御などを行おうとしているのですが、17番以降のポートをオープンしたり、アクセスすることができません。何か原因があるのでしょうか。 VBで無理であれば、他に方法はありませんでしょうか。 よろしくお願い致します。

  • 割り当てられたCOMポートの内容確認について教えてください。

    はじめまして、こんにちは。 掲題の件、どこにカテゴライズされるのか不明でしたので、その他にさせていただきました。 質問内容ですが、 デバイスマネージャーでCOMポートのプロパティを開き、「ポートの設定」タグを選択し、「詳細設定」を選択すると、一番下にCOMポート番号が表示されます。 ここの▽をクリックするとCOM番号がずらっと表示され、使用しているものには(使用中)との記載がされていると思います。 この、(使用中)がでているポート番号のドライバの内容を確認したいのですが、どうしたらよいのでしょうか? 何を割り当てたのか不明で、アンインストールするにも何のドライバなのか分からず困っています。 確認の仕方をご存じの方はご教授下さいませ。

  • 通信ポートCOM5以上のモニタ方法

    COM5以上の番号で認識される通信ポートをモニタする方法についての質問です。 使用しているパソコンは、富士通FMV-680MC4 標準でCOMポートが搭載されていないので、USB-シリアル変換器(USB-RSAQ3)を使用します。 変換器は正しく認識しますが、COM5で認識されてしまいます。テラターム等の通信ツールでモニタしたいのですが、テラタームはCOM1~COM4までしか選択出来ないのです。 そこで、質問が2つ(2通り)あります。 (1)COM5以降の大きな番号を選択できるラインモニタツールがあれば教えて下さい。バイナリではなく、アスキーで表示する事と、ロギング出来る事が条件です。 (2)ポート番号をCOM1~4に変更する方法を教えて下さい ちなみに、デバイスマネージャーを開いて、該当するCOMポートのプロパティ→詳細設定を開き、COMポート番号を変更しようとすると、COM1~COM4までは使用中と表示されています。 ・・・これは無理と言う事でしょうか? よろしくお願いします。

  • VB2010で、シリアル通信をするには

    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' へのアクセスが拒否されました。」です。 何が原因なのか、さっぱり分かりません。 ヒントになりそうな解答を頂けないでしょうか?

  • シリアル通信のポートオープン

    シリアル通信のテストプログラムを作成中でして、一通り動作するようになったのでエラー処理を確認しようとしたところ、存在しないCOMポート?なのにオープンが成功したと処理してしまいます。 環境  P社のノートパソコン  Windows XP Pro SP3  Visual C++6.0 SP6  USB接続のRS-232C変換アダプタを使用  デバイスマネージャでは、拡張ポートはCOM4のみとなっている  ハイパーターミナルの「接続の設定」では、接続方法の選択肢にCOM3とCOM4の2つがある ・COM4を使うと、オープン後、正常に通信できます。 ・COM3を使うと、オープンは出来るが、通信は出来ません。 ソースを記載します。 if(HANDLE_CHECK(m_hComm) == FALSE){ ss.Format("COM%d", m_nRsPort); m_hComm = ::CreateFile(ss, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if(HANDLE_CHECK(m_hComm) == TRUE){ dcb.DCBlength = sizeof(DCB); if(::GetCommState(m_hComm, &dcb) != FALSE){ dcb.BaudRate = m_nRsBaudrate; dcb.Parity = m_nRsParity; ・ ・ ・ ・ ・ ・ if(::SetCommState(m_hComm, &dcb) != FALSE){ COM3の場合もCOM4の場合もここを通っている。 } else{ } } } } COM3のオープン時、エラーの検知は出来ないのでしょうか? よろしくお願いします。

  • BluetoothのCOMポートの変更方法(COM16以下に)

    Princetronのブルートースアダプターを購入しました。 セットするとCOM40になりました。 VBのCOMコンポーネントのポートNoは最大でCOM16までです。 どうしたらCOM40を16以下にできるでしょうか。教えてください 新規接続の設定では40から62までの範囲でしかできません。

  • 'Button1を押したらポートオープン

    'Button1を押したらポートオープン Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'シリアルポートを設定。 SerialPort1.PortName = SerialPortComboBox.Text SerialPort1.BaudRate = SerialBpsComboBox.Text Select Case SerialParityComboBox.Text Form3.SerialPort1.Parity = IO.Ports.Parity.None 'データ長 SerialPort1.DataBits = SerialDataBitsComboBox.Text 'RTSラインを有効にする SerialPort1.RtsEnable = True '送信タイムアウト SerialPort1.WriteTimeout = 3000 Try 'ポートをオープン SerialPort1.Open() 'いざ送信 'SerialPort1.Write(Chr(&HC)) 'ケーブルが外れた場合などのタイムアウトエラーなら、 Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "シリアル通信エラー") SerialPort1.Close() Exit Sub End Try '送信バッファが空になるまで待って、 While SerialPort1.BytesToWrite > 0 My.Application.DoEvents() End While ''''''''''''文字送信 'シリアルポート送信データをSJISに指定 SerialPort1.Encoding = System.Text.Encoding.GetEncoding(932) Dim Settei As String '送信文字代入 Settei = "A.1=" & vbCrLf 'いざ送信 SerialPort1.Write(Settei) '送信バッファが空になるまで待って、 While SerialPort1.BytesToWrite > 0 My.Application.DoEvents() End While End Sub '文字受信 Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived Dim strDataReceived As String Dim add As New AddDataDelegate(AddressOf AddData) Try strDataReceived = SerialPort1.ReadLine Catch ex As Exception strDataReceived = ex.Message End Try TextBox1.Invoke(add, strDataReceived) End Sub ///////// 文字を送信した後に相手から帰ってきます。 送信した後の受信の部分ですが、これで正しいか教えて頂きたいです。

  • COM1とCOM2に!マークがつきます

    windows98SEからwindows2000へOSをクリーンインストールしたパソコンのデバイスマネージャでポート(COMとLPT)下のCOM1とCOM2に!マークがついています。 プロパティをみると ///////////////////////// 全般タブ---------------------- 通信ポート(COM1) デバイスの種類:ポート(COMとLPT) 製造元:(標準ポート) 場所:Intel 82371AB/EB PCI to ISA bridge (ISA mode) デバイスの状態 このデバイスは正常に機能していないため、取り替えなければならない可能性があります。このデバイスの製造元に問い合わせてください。 リソースタブ-------------------- 競合なし //////////////////////// のような事が表示されています。 (T.T)このような場合、やっぱりCOM1とCOM2は死んじゃったのでしょうか?どうにか!マークを外す事(使用できるように)できないでしょうか? (?.?)また、COMポートってそもそもどういったポートなのでしょうか?(どおして好きな番号に変更できるのでしょうか?) 質問ばかりですみませんがご存知の方よろしくお願い致します。

  • VB2010 COMポートからのバイナリ受信

    オシロスコープからの画像データ(40kバイト程度のtifファイル)をPCのCOMポートから受信し 保存するプログラムを作成しているのですが、受信データを正しくPC上に保存できません。 具体的には下記のコードでtifファイルは作成されますが、容量が数kバイトで明らかに不足 しています。 MsgBoxを有効にして受信バッファサイズや書込み長さを確認しましたが、「OK」ボタンを押す たびに下記の表示になります。COMポートのバッファサイズが4096バイトなので「dat.Length」 をすべて足し合わせると本来の受信データサイズになると思うのですが、PC上に作成された ファイル容量から「dat」が常に上書きされているような気がします。 正しく保存するにはどのような修正が必要でしょうか? 【MsgBoxを有効にしたときの表示値(OKを押すたびに数値が変わる)】 「dat.Length」 183 4075 4072 4092 4088 4084 4085 4092 4059 4078 3910 0 0 ・ ・ ・ 「ByteToRead」 4060 1508 324 908 2334 1785 70 227 400 0 0 ・ ・ ・ 【作成したコード】 Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As_ System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived ' シリアルポートからデータ受信 Dim dat As Byte() = New Byte(SerialPort1.BytesToRead - 1) {} SerialPort1.Read(dat, 0, dat.GetLength(0)) 'MessageBox.Show(dat.Length) 'MessageBox.Show(SerialPort1.BytesToRead) File.WriteAllBytes("C:\test1.tif", dat) SerialPort1.DiscardInBuffer() End Sub 【環境】 OS:Win7 VB:2010 ポート設定:SerialPortクラス標準からポート番号以外は変更なし

  • COM1ポート IRQが変わる

    RS232Cを使ってPCと制御機器の通信プログラムを作成しています。 使用言語はVC++6.0です。 CreateFile関数でCOM1ポートをOpenして使用したいのですが オープン出来ずエラーになります。 コントロールパネルのデバイスマネージャから COM1ポートのIRQを見ると4となっています。 (通常そうだと思いますが。) そこで、一度、COM1ポートを無効してPC再起動 再起動後、COM1ポートを削除してハードウエアをスキャン。 その後、COM1ポートが出ますが、その時IRQは7になっています。 その状態ではCreateFile関数を使ったCOM1ポートのオープンは 出来ます。 しかし、再度、PCを再起動するとIRQが4に戻って ポートが開けない状態になります。 また、ポートを削除して・・・IRQを7にするとポートが開ける。 再起動する度に変更したIRQが4になり、上手く使いこなせません この現象について、アドバイスいただける方いましたら よろしくおねがいします。