GetExitCodeProcessで取得した終了コードが正常終了か異常終了かを識別するには?

解決


どら  2007-11-14 02:19:09  No: 66852

すごく意味のない質問かもしれないのですが・・・

1.CreateProcessでプロセスを開始
2.WaitForSingleObjectで終了するまで待機
3.GetExitCodeProcessでプロセスの終了コードを取得

としたとき、GetExitCodeProcessで取得された終了コードが正常終了なのか異
常終了なのかを判別することは可能なのでしょうか?

CreateProcessで実行するアプリケーションは、
・msiexec.exe
・BV6ベースのインストーラ
・InstallShield ンストーラ(exe)
・wscript.exe(VBスクリプト実行時)
・cmd.exe(バッチファイル実行時)
をはじめとする出来合いの実行ファイルから、オリジナルの実行ファイル(す
べて私が作成)等たくさんあります。
自作の物については、自分でmain/WinMainの戻り値を決め打ちしておけば良い
と思うのですが、出来合いの実行ファイルはそうもいかないので・・・

実行したい物一つ一つの戻り値を確認してその値をソースに組み込む敷かない
のでしょうか?

ちなみに開発環境はWin XP Pro(wSP2) + VS.NET 2003 Ent.で、実行環境は
Win XP Pro(wSP2) または Win 2K Pro(wSP4)です。

どなたかよい方法をご存じの方がいらっしゃいましたらご教授ください。
よろしくおねがいいたします。


とーりすがり  2007-11-14 10:30:18  No: 66853

普通は正常終了なら0だが
それ以外はそれぞれのプログラム次第
異常終了でも0を返すプログラムもあるかもしれない


YMT  2007-11-14 11:03:54  No: 66854

コマンドプロンプト(cmd.exe)は、戻り値を見ても同じだと思いますよ(閉じた時の戻り値ではないかと)
バッチファイルでの命令が全て成功した、全て失敗した、一部は成功したと言うのは判別できないと思います(コマンドプロンプト自体が対話型ですし)


どら  2007-11-14 17:11:55  No: 66855

とーりすがりさん、YMTさん、レスありがとうございます。
やっぱりそうですよね・・・
必要な限りログを残して、それを解析するしかなさそうですね・・・
くだらない質問に答えていただいてありがとうございました。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加