DOBON.NET DOBON.NETプログラミング掲示板過去ログ

processクラスについて

環境/言語:[VB.NET(2003,windowsXP)]
分類:[.NET]

いつも当掲示板にはお世話になっております。
よろしくお願いします。

processクラスを使用して、起動しているプロセスの状態を監視しようと考えています。
そこで監視を行うプロセスAがプロセスBを起動するときにProcessクラスのExited
イベントのハンドラを追加して監視するようにしています。
そこでプロセスBが終了した時のExitCodeを参照し処理を振り分けようとしているのですが、正常終了した場合と、Exceptionが発生するような異常終了でもExitCode
は0と返却されてしまいます。
マニュアル上では0以外の数値が返却されるとあるのですが、どのような終了の場合に0以外の数値が返却されるのでしょうか?
また私の方で試してみた結果、タスクマネージャからの強制終了、Exceptionをわざと発生させたときの終了は全て0が返却されてしまいました。
目的としては、正常に終了された場合とException発生等の異常終了を
識別したいと思っています。
申し訳ございませんが、だれかわかる方いましたら教えてください。
よろしくお願いします。
> processクラスを使用して、起動しているプロセスの状態を監視しようと考えています。
> そこで監視を行うプロセスAがプロセスBを起動するときにProcessクラスのExited
> イベントのハンドラを追加して監視するようにしています。

プロセスBのプログラムもzonoさん作でしょうか?

> そこでプロセスBが終了した時のExitCodeを参照し処理を振り分けようとしているのですが、正常終了した場合と、Exceptionが発生するような異常終了でもExitCode
> は0と返却されてしまいます。

プロセスBのプログラムはExitCode(終了コード)を正常時は0、
異常時は0以外で返すような作りになっていますか?
なっていればそのExitCodeを拾えるでしょうし、なっていなければ0しか拾えないと思います。

プロセスBのプログラムがzonoさん作で、かつ、.NETのプログラムなのであれば、
System.Environment.Exitメソッドで終了コードを返すように改造すればよいかと思います。
■No21268に返信(よねKENさんの記事)
>>processクラスを使用して、起動しているプロセスの状態を監視しようと考えています。
>>そこで監視を行うプロセスAがプロセスBを起動するときにProcessクラスのExited
>>イベントのハンドラを追加して監視するようにしています。
>
> プロセスBのプログラムもzonoさん作でしょうか?
>
>>そこでプロセスBが終了した時のExitCodeを参照し処理を振り分けようとしているのですが、正常終了した場合と、Exceptionが発生するような異常終了でもExitCode
>>は0と返却されてしまいます。
>
> プロセスBのプログラムはExitCode(終了コード)を正常時は0、
> 異常時は0以外で返すような作りになっていますか?
> なっていればそのExitCodeを拾えるでしょうし、なっていなければ0しか拾えないと思います。
>
> プロセスBのプログラムがzonoさん作で、かつ、.NETのプログラムなのであれば、
> System.Environment.Exitメソッドで終了コードを返すように改造すればよいかと思います。
>

返信が遅れてしまい申し訳ございません。
おっしゃるとおりプロセスBの自作で.NETです。
指摘されてように終了コードを分けるようにしたら実現できました。

本当に助かりました。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板