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

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

VB.Net シリアル通信

VB.Net 2010/W.7でシリアル通信のプログラムを作成しました。 デバック状態では正常に動作しました。又、Debugフォルダー内に出来た.exeファイルでも正常に動作しました。 この.exeをVB.Netの外にコピーして実行させようとした所、"アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。「続行」をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。「終了」をクリックすると、アプリケーションは直ちに終了します。 ポート'Com1'は存在しません。 とのメッセージが出てしまいました。 RS-232cの部分を外して実行させると正常に動作する様です。 これは無料版を使用している為の制限なのでしょうか、それとも何かをインクルードする必要があるのでしょうか。 同様に System.IO.Directory.CreateDirectory(sCurDir & "Log") でディレクトリーを作成出来ない様です。Debugフォルダーの中ではディレクトリーは作成されて居ました。 手動でディレクトリーを作成すると、その中にファイルは書けるみたいです。 お分かりに成る方が居られましたらお教え下さい。 宜しくお願い致します。

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

  • ベストアンサー
回答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

  • VB2008 でプログラムを作成している初心者です。

    VB2008 でプログラムを作成している初心者です。 順調に製作&デバッグしながら進めていたプログラムで、突然デバッグしても、作成中のアプリケーションが現れなくなりました。VB開発環境には”プログラム実行中”と表示があり動いているようですが、アプリ画面が出ていないので、そこへの入力も何も、画面確認もできません。何か、設定があるのでしょうか? ちなみに、binやdebugフォルダーのwindowsApplication1.exeをクリックすると、画面が出てきて動作します。 初歩的な問題だとは思いますが大変困っています。 どなたかお分かりになる方、ご教授ください。 よろしくお願いします。

  • VBがデバッグ時落ちてしまう

    VC6.0でDLLを作成し、VB6.0で呼び出すプログラムを作成しています。 DLLの内容はWindowハンドルを引数にしてそのハンドルを持つWindow上にListboxを作成するというようなものです。(もともとC言語用のDLLだったものをVBで使いまわしています) このプログラムをデバッグ実行し、デバッガ上で停止[実行->終了]とすると、VB6.exeがアプリケーションエラーで落ちてしまいます。(DLLの関数を呼ばない限り大丈夫です) デバッグ実行でも普通に終了(アプリケーションでの終了)であれば正常に終了してくれます。 このままですと、実行時エラーで止まる度にVB6.exeが落ちてしまい非常に不便です。 このような現象で困った方いませんか? 解決策がありましたら教えてください。

  • VB2008の64bitでの使用について

    こんにちは どなたか教えていただけると非常に助かります。 VB2008で簡単なMSアクセス2010と連携した在庫管理システムを作成しました。(Win7の32bitPCで開発しました) 32bitPCでは問題なく動作しましたが64bitPCでは以下のエラーメッセージが表示され使用できませんでした。 --------------------------------------------------------------------- Microsort .NET Framework アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました、[続行]をクリックすると、アプリケーションはこのエラーを無視しようとします。[終了]をクリックすると、アプリケーションは直ちに終了します。 プロバイダーが見つかりません。正しくインストールされていない可能性があります。 --------------------------------------------------------------------- [続行]を押すて進むと、今度は以下のエラーメッセージが表示されます。 --------------------------------------------------------------------- 在庫管理システム アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました、[続行]をクリックすると、アプリケーションはこのエラーを無視しようとします。[終了]をクリックすると、アプリケーションは直ちに終了します。 この操作を実行するために接続できません。このコンテキストで閉じているかあるいは無効です。 --------------------------------------------------------------------- インストーラの作成方法に誤りがあるのでしょうか。 どなたかわかる方、ご教授お願いします。

  • フォームの作成中にエラーが発生しました

    VS2010を使ってプログラムを作っております。 プログラムが完成し、知人のパソコン(windows Vista)にDebugフォルダを移しexeファイルを実行すると、スタートフォームまでは行けるのですが、別のフォームを開くボタンを押すと以下の様なエラーが出てしまいます。 「フォームの作成中にエラーが発生しました」 続行、終了と選択肢があり、続行を選ぶとスタートフォームのみ表示された状態になり、終了を押すと全て終了されてしまいます。 .NetFrameWork4は入れてあります。 作成したPCでデバッグしたり、Debugフォルダからexeを実行した時には何もエラーが出ず、そのDebugフォルダを他の場所に移し実行してもエラーは出ません。 原因の分かる方、おられましたらご教示願います。

  • インストール後の不具合について(VB6.0)

    VB6.0でアプリケーションを開発しています。 実行ファイルを作成し、起動したところ、正常に動きました。 しかし、インストール後の実行ファイルは起動するのですが不具合が生じます。 (ディストリビューションウィザードでSetup.exeを作成し、インストールしました。) 正常に動く部分もありますが、あるコマンドボタンをクリックすると、固まってしまい、アプリケーション名の右に(応答なし)と表示されます。 コードに問題があるのでしょうか? 開発環境は以下の通りです。 OS:WindowsXP SP2 DB:Access2003 VB6.0からAccess 2003への接続方法はADOです。 宜しくお願いします。

  • VB2005でデバッグ実行できない

    VB2005で[新しいプロジェクト]-[VisualBasic]-[Windowsアプリケーション]で 新規プロジェクトを作成しただけの状態から、ビルド、デバッグ実行すると 以下のエラーが表示され、デバッグ実行できません。 プロジェクトを実行しようとしているときにエラーが発生しました: (省略) 要求された操作には管理者特権が必要です。 Debugフォルダの中のexeファイルにはUACの盾アイコンがついています。 今まで特に気にせずアプリケーションの作成ができていたと思うのですが なぜか急にこのような現象に陥りました。 対処方法を教えてください。 環境:OS=Windows7 Pro    :VisualStudio2005

  • VB バックアップとしてファイルをコピーしたい

    VBでアイコンをクリックして実行したいのですが、教えください。 フォルダー名をインプットする そのフォルダー名で新規作成する ファイルをそのフォルダーにコピーする 終了   よろしくお願いします。

  • exeと同じ階層にフォルダを配置したい

    VB2008で開発しています。 作成したexeのあるフォルダにテンプレートが入っているフォルダを 相対的に置いておきたいと思っています。 ソリューションエクスプローラーでフォルダを作成し そのフォルダにファイルを入れました。 しかしコンパイルしてもdebugフォルダには フォルダが作成されていません。 フォルダのパスをSystem.IO.Directory.GetCurrentDirectoryにフォルダ名を連結しています。 なぜファイルが見つかりません。となってしまうのでしょうか。

  • VBでエクセルをOPEN

    こんばんわ。VB初心者です。 VBのフォームにあるボタンを押すと、VBで作成したexeファイルのディレクトリを調べて、そこにエクセルファイル(****.xls)があるかチェックして、なかったらエクセルを起動しそのエクセルファイルをOPENしたいのですが、うまくオブジェクトがとれてなかったり、ディレクトリがちゃんと調べれてなかったりで、うまく動きません。 それから、エクセルを操作した最後にエクセルファイルをcloseしてエクセルアプリを終了させたいのですが、、それもうまく動きません。 どなたか、詳しいかたお手数ですがレスよろしくお願いいたします。

  • VB6.0 exeファイルを作成すると動かなくなってしまいます。。。

    VB6.0で、RS232CのRTS、CTSを使用して、ONOFFスイッチを作成しました。 ONでデータ送信するプログラムを作成したのですが、VB開発環境上で 実行すると正常に作動するのですが、EXEファイルを作成して実行すると、232CのONOFFスイッチのところがうまく動かなくなってしまいます。 他のところはEXEファイルでも正常に動きます。 使用PCは同じPC上です。 何か解消法はありますでしょうか。 アドバイスをよろしくお願いいたします。

専門家に質問してみよう