外部プロセスのエラーについて

このQ&Aのポイント
  • 外部プロセスを起動する際に発生するエラーについて質問です。
  • 起動元のプロセスと直接起動した場合でエラーが異なるのかについて詳しく知りたいです。
  • VB2008での開発であり、解決策やヒントを求めています。
回答を見る
  • ベストアンサー

外部プロセス起動時に発生するエラーについて

外部プロセス起動時に発生するエラーについて お知恵を拝借させてください。 あるプロセス(以下A)から同一端末上の別プロセス(以下B)を起動する場合に、 エラーが発生します。 エラーの内容は、参照オブジェクトが作成されていないという内容です。 このエラー自体については納得はできるのですが、 プロセスBの直接起動の場合、このエラーは発生せず、正常に動作します。 別プロセスからの起動と、直接起動で、 内部的な動作の違いがあるのかもと想像しているのですが、 確認の方法がわからず、困っています。 解決の為の方法、ヒントか糸口など、 もしご存知の方がいらっしゃいましたら教えていただきたいのです。 プロセスA、B双方ともVB2008による開発です。 よろしくお願いします。

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

  • ベストアンサー
  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.1

Bの指定はどの様にしていますか。 多分ですが、Bへのフルパスが書いてないか、Bにpathが通っていないのではないかと思われます。 よく例題でノートパッドを起動するという場合に"notepad.exe"と書いてありますが、これは notepad.exeにpathが通っているからフルパスを書かなくて済むだけです。例えば下記にある例で http://msdn.microsoft.com/ja-jp/windows/ff467967 次の様に指定していますが startInfo.FileName = "notepad.exe" 使用するファイルはフルパスで指定しています。 startInfo.Arguments = "C:\users\public\readme.txt" システムディレクトの場合はフルパスを書くより「%ナンタラ%」という環境変数の指定のほうが良いので、上記の例の使用するパスは??ですが。 XPの場合は「user」ではなく「Document and Setting」のように名前が違いますが、%ナンタラ%を使えばこの違いも吸収できます。 http://www.atmarkit.co.jp/fwin2k/special/win64_03/win64_03_03.html http://www.atmarkit.co.jp/fwin2k/win2ktips/267swchos/swchos.html 特殊フォルダのパスを取得する方法もあります。 http://dobon.net/vb/dotnet/file/getfolderpath.html http://powershell.wiki.fc2.com/wiki/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0

sugar_donut
質問者

補足

早速のレス、ありがとうございます。 せっかくご説明いただいたのですが、私の説明不足だったようで、 問題が正確に伝わっていませんでした。 申し訳ありません。 プロセスBの起動そのものは正常に始まりますが、 そのロード中に画面上のコントロールに値を設定することで、 イベントが発生し、エラーはその中で発生しています。 そのイベント中で参照しているオブジェクトは BackGroundWorkerとかいうコントロールだったかと思います。 パスの指定に環境変数が使えるのは知りませんでした。 携わるプログラムは、たいてい外部ファイルに必要なパスを持っているので、 こういった方法があることには気がつきませんでした。 興味深く拝見しました。ありがとうございます。

関連するQ&A

  • プロセスを監視するシェルスクリプトのエラー

    現在作成している定期的にTCPサーバーに対してクライアントが動作しているかどうかを知らせるためパケットを送信するプログラムをpythonで作成し、ラズパイ起動時に自動起動でこのプログラムを起動しているのですが、起動する時としない時があるのでこのプロセスが正常に動作しているかどうかを確認したく、このようなプログラムを作成しました。 (tcp_client1_02_process_check.shの内容) #!/usr/bin/sh while true do #ここではftpdのプロセス監視 isAlive=`ps -ef | grep " sudo python /home/pi/Desktop/tcp_client1_02.py " | \ grep -v grep | wc -l` if [ $isAlive = 1 ]; then echo "プロセスは生きています" else echo "プロセスは死んでいます" sudo /home/pi/python/autorun_script fi sleep 3 done このプログラムはこのサイトを参考にさせて頂きました。 Linux上のプロセスを監視して、プロセスがダウンしたら再起動させるShell http://tech.thekyo.jp/linux%e4%b8%8a%e3%81%ae%e3%83%97%e3%83%ad%e3%82%bb%e3%82%b9%e3%82%92%e7%9b%a3%e8%a6%96%e3%81%97%e3%81%a6%e3%80%81%e3%83%97%e3%83%ad%e3%82%bb%e3%82%b9%e3%81%8c%e3%83%80%e3%82%a6%e3%83%b3%e3%81%97/91/ このプログラムを sh tcp_client1_02_process_check.sh これで起動すると次のようなエラーが出てきます。 tcp_client1_02_process_check.sh: 14: tcp_client1_02_process_check.sh: Syntax error: "done" unexpected (expecting "then") このエラーどのようなエラー内容なのでしょうか? どうぞ、ご教示いただきますよう宜しくお願い致します。

  • 起動時にエラーが発生します。

    WIN/2000の起動時に下記のエラーが発生します。 エラー内容 ルーターマネージャでIPプロトコルのインターフェース内部を追加出来ません。 次のエラーが発生しました.パラメータが間違っています。 原因と対処を教えて下さい。

  • 起動プロセス中にエラーメッセージは表示されませんでした。

    起動プロセス中にエラーメッセージは表示されませんでした。 再インストールは出来たのですが、起動プロセス中に固まってしまいどうする事も出来ません。 この場合はどうすれば宜しいでしょうか?

  • 別プロセスの起動

    別プロセスの起動について質問があります。 Java、Servlet、JSPを使って検索画面、検索処理を作っています。 レコード件数が何万件もあるので、検索処理を別プロセス(別クラス)で実行したいと考えています。 クラス構成は、 1.検索条件受け取りクラス 2.検索処理クラス 検索条件受け取りクラスで、検索条件をオブジェクトにし、そのオブジェクトを検索処理クラスの引数に渡し、別プロセスとして実行するような感じで考えています。 ※スレッドでの実装は、メモリを消費するため考えておりません。 実装方法やサンプルをよろしくお願いします。

  • 起動時にエラーが発生して困っています。

    WindowsXPを購入したばかりなのですが、起動すると「RUNDLL」という小さなウィンドウが二つか三つ出てきます。内容は、 「C:\WINDOWS\DOWNLO~1\CnsMin.dllを読み込み中にエラーが発生しました。  メモリロケーションへのアクセスが無効です。」とあり、×マークかOKをクリックすると消えるのですが気になって仕方がありません。 まだ購入して数日なのですがエラー発生してどうしていいかまったく分かりません。できれば解決法を分かりやすく教えていただきたいです。 よろしくお願いします。

  • 起動時にエラーの発生

    Vista起動後に毎回必ずエラーが発生します。 エラーというのは、rtclk MFC Application は動作を停止しました。 とういうメッセージです。 このエラーと関連性があるのかわかりませんが、 「信頼性とパフォーマンスモニター」でシステム診断してみたところ 診断結果の警告欄に、「ワークステーションサービスが異常停止しました。」と表示されてます。 その表示の原因の欄には「アプリケーションのエラー 終了コード0」 解決の欄には「サービスを再度再開します。」と表示されますが、 サービスの再開することができません。 この場合どうしたらよいでしょか? よろしくお願いします。

  • OutLookを起動すると、スクリプトエラーが発生するのですが。。。原因がわかりませ...

    OutLookを起動すると、スクリプトエラーが発生するのですが。。。原因がわかりません。 OutLookを起動すると、以下のスクリプトエラーが発生します。 URLのところにTrendMicroの文字がありますが、 ウイルスバスターの設定も関係あるのでしょうか? 教えていただけないでしょうか? 以下、エラーウインドウの文字です。 InternetExplorer スクリプト エラー このページのスクリプトでエラーが発生しました。 ライン:109 文字:5 エラー:'length'は null またはオブジェクトではありません。 コード:0 URL:file://C:/Program%20File/Trend%20Micro/TrendSecure/en- US/MainFrame.html

  • 外部プロセスの起動

    いつもお世話になっています. 現在JAX-RSのプログラムで特定のアドレスへ移動すると外部のbatファイルが起動する,というプログラムを書いています. batファイルの内容はjavaプログラムを二つ起動する,というものです. そのアドレスに移動するとbatファイル自体は起動するのですが”エラーメインクラスがみつからなかったかロードできませんでした”と表示されてコマンドプロンプトのウインドが一瞬で閉じてしまいます. どのように対処すればいいでしょう?ご教授お願いします. なお,ソースコードは以下の通りです ==================================================================================== @GET//スイッチのON @Path("/ON") public static boolean OnSwitch(){ //機器の電源をONにする //機器ごとの通信ミドルウェアを呼び出す button=true; if(button==true){ String output="lightの状態は :"+ button; String filename = "C:\\start.bat"; try { System.out.println("実行中"); Process proc = Runtime.getRuntime().exec(filename); proc.waitFor(); System.out.println("実行終了"); } catch( Exception e ) { System.out.println(e); } } return button; } ==================================================================================== 以下はbatファイルの内容 =============================== start java okaeriZZZ2 start java TheaterZZZ2 =============================== 以上です.

    • ベストアンサー
    • Java
  • InternetExplorer使用時に発生したエラー。

    InternetExplorer使用時に発生したエラーなんですが、以下のエラーを検出しまくるんですが。 どちら様か、解決の方法を示してくれると恐悦です。  ─────────────────────   このページのスクリプトでエラーが発生しました。   ライン: 1   文字: 1   エラー: オブジェクトを指定してください。   URL: about:blank  ───────────────────── 報告時の条件:IE 6.0 SP1

  • Process++

    Process++をXPで起動するときにエラーが発生してしまいます。Process++はXPで使えないのでしょうか。 もしだめならば、複数のプロセスを同時に強制終了できるソフトを教えてください。

専門家に質問してみよう