プロセス監視についてご教授いただきたく書き込みいたしました。
一つの動作中プロセス(hogeプロセスとします)のプロセスIDを取得し、そのプロセスIDを基に
hogeプロセスの生存をチェックするにはどうしたらよろしいでしょうか?
(hogeプロセスのプロセスIDは監視するプロセスにコマンドライン情報として渡すようにしてい
ます)
過去ログに似たような質問がもしありましたらお詫びいたします。
よろしくお願いします。
GetExitCodeProcess()なんて使えませんかね...?
#プロセスIDからプロセスハンドルを取得する必要あり。
sugarさんのおっしゃるとおり、通常はGetExitCodeProcessを使います。
指定したプロセスが終了していない場合、終了ステータスとして STILL_ACTIVE が格納されま
す。プロセスが既に終了した場合は、終了ステータスとして次のいずれかが格納されます。
•ExitProcess または TerminateProcess 関数で指定した終了コード。
•プロセスの main または WinMain 関数の戻り値。
•プロセスを終了させた、まだ処理されていない例外の例外コード。
すみません、文字化け部分(&#8226とか)は、単なる●です。
プロセスの生死ならWaitForSingleObjectの方が……。
プロセスがSTILL_ACTIVE(=0x103)と同じ値を返したときに,
終了を判別できませんから。
ちょっと話がずれるかも ですが
>(hogeプロセスのプロセスIDは監視するプロセスにコマンドライン情報として渡すようにして
い
>ます)
hogeから監視するほうを起動するのでしょうか?
hoge終了時に監視するほうも終了させたい でしたら他の方法もありますが?
はずしてたら ごめんなさい。無視してくだちゃい。
sugarさん、いもちぃさん、YuOさんありがとうございました。
WaitForSingleObject()を使用することにしました。
試してみます。また何かありましたらよろしくお願い致します。
>さなえさん
hogeから監視するほうを起動するのですが、hogeのプログラムを触ることができないので、監
視するほうに組み込もうとしてました。ありがとうございます。