人気ブログランキング | 話題のタグを見る
(.Net)アプリケーションの終了コードを返す方法、取得する方法
.Net のコンソールアプリケーションでOSに終了コードを返す方法です。

いくつか有るようですが、一番オーソドックスなのはエントリポイントであるMainメソッドの戻り値を指定する方法です。
ただ、Visual Studio で新規にコンソールアプリケーションのProject作成すると、Main メソッドの戻り値が void になっているので、これを int 型に直す必要があります。

こんな感じです。(C#)

class Program
{
static int Main(string[] args)
{
return 1;
}
}

また、Environment.Exit メソッドを使う方法もあるようです。引数に終了コードを指定するようですね。
この場合、プロセスを殺すとともにOSに終了コードを渡せます。(Main メソッドの戻り値の型が void でも使えるみたいです。)


Environment.Exit(1);


さらに、Environment.ExitCode プロパティに終了コードを設定するという方法もあるようですね。

Environment.ExitCode = 1;
return;


参考:
@IT:コンソール・アプリケーションで終了コードを返すには?


逆に、.Net アプリ自身から起動したプロセスの終了コードを取得こともできるようです。

Process オブジェクトを使ってアプリケーション起動後、WaitForExitメソッドで終了まで待ち、Process.ExitCode プロパティで起動したプロセスの終了コードを取得できます。

具体的にはこんな感じ。(C#)

using System.Diagnostics;
 
//プロセスオブジェクト生成
Process proc = new Process();
// 起動するアプリケーションを設定する
proc.StartInfo.FileName = "test.exe";

// 起動する
proc.Start();
//起動したプロセスが終了するまで待つ。
proc.WaitForExit();
//終了コード取得
int iExitCode = proc.ExitCode;


参考:
@IT:ほかのアプリを実行して終了コードを得るには?
@IT:.NET TIPS ほかのアプリケーションを実行してその終了を待つには? Process.WaitForExitメソッドでプロセス終了を待つ説明が書いてます。

なお、バッチファイル内で直前の処理の終了コードを参照する方法はバッチファイルで直前のコマンドの終了コード判定で書いてます。
by jehoshaphat | 2010-10-23 10:04 | .Net開発


<< cacls.exe を使ってA... バッチファイルでコマンドライン... >>