• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB.Net シリアル通信)

VB.Netでのシリアル通信の問題

このQ&Aのポイント
  • VB.Net 2010/W.7で作成したシリアル通信のプログラムが、別の場所で実行する際にエラーメッセージが表示される。
  • RS-232cの部分を外すと正常に動作するが、制限があるのか、何かをインクルードする必要があるのか不明。
  • ディレクトリを作成する処理が正常に動作せず、手動で作成する必要があるようだ。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

エラーメッセージの通りで、 そのパソコンに「COM1」というシリアルポートが無いからです。 「COM1」以外のシリアルポートが在るなら プログラムを、使用するシリアルポートを選択できるように改造する必要が有る。 ディレクトリ名 System.IO.Directory.CreateDirectory(sCurDir & "\Log") じゃないですか?

TinyPine
質問者

お礼

ご回答ありがとうございます。 Debugフォルダー内では正常に何回も動作し、Debugフォルダーから外すと、この様なエラーが出るので困って居ます。 ディレクトリーの作成についても同様です。

TinyPine
質問者

補足

解決しました。 原因は私の思い込みとエラーメッセージを良く見なかった事でした。 プログラムはCOMポートを選択出来る様に作られて居り、前回選択したポートを保持出来る様にしてありました。 ポート選択のComboBoxのデバックを先にやって居たので、Com1~Com4まで選択出来る事を確認した後は実際に使用するCom1に設定して居ました。 ここで実際のRSと結合テストを行ったので、デバックモードでは正常に動作しました。 ただ、前回に何も選択されて居ない時は初期値としてCom0を選択する様にコーディングしてありました。 今回、デスクトップ上にプログラムをコピーして実行させた事により、Iniファイルが作成されて居ない為、エラーと成ってしまったもので、エラーメッセージ"Com1が無い"では無く"Com0が無い"でした。 ディレクトリーの作成に関しては、最初 System.IO.Directory.CreateDirectory(sCurDir & "\" & "Log") とコーディングして居たのを整理して、(sCurDir & "\Log") とすべき所を(sCurDir & "Log") としてしまったもので、ご指摘の通りです。 ただ、デバックフォルダー内にはLogフォルダーが既に出来て居たのでデバックモードでのテストでは気が付かず、デスクトップにコピーした際に発覚したものです。 無料のコンパイラーには何か制限があるとの先入観念で現象を見てしまいました。 もっとしっかりエラーメッセージを見るべきでした。

その他の回答 (2)

回答No.3

>Debugフォルダー内では正常に何回も動作し、Debugフォルダーから外すと、この様なエラーが出るので困って居ます。 同じPC内でこのような現象の原因として考えられるのは、次の2つ。 (1) exeファイルの他に、exe.configファイルが必要。 これは、プログラムの設定(画面コントロールのプロパティ等)をファイル保存するようにしている場合、exeファイルと一緒にexe.configファイルもコピーする必要がある。 (2) Debugフォルダー外として、保護されたフォルダを使っている。 例えば、「C:\Program Files」下のフォルダは全て保護されているので、プログラム実行時に一時ファイル等が作れない。 上記は該当しないですか?

  • colhan
  • ベストアンサー率31% (201/631)
回答No.2

com1.2 は、以前のPC/AT 互換機の名残で、 見た目が無くても、内部的に既に使っている事になっているかも知れません。 使おうとするとかち合ってしまうかも知れません。

TinyPine
質問者

お礼

ご回答ありがとうございます。 Debugフォルダー内では正常に何回も動作し、Debugフォルダーから外すと、この様なエラーが出るので困って居ます。

関連するQ&A

専門家に質問してみよう