PC上の作業を自動化するアプリケーションを作成する場合に、外部アプリケーションを実行することがよくあります。そのような処理において、外部アプリケーションが正常に終了したかどうかをチェックすることは非常に重要です。
本記事では、C#で外部アプリケーションを起動し、そのアプリが正常終了したかどうかを終了コードによりチェックするサンプルコードを紹介します。
サンプルコード
以下は、拡張子exeのアプリケーションを実行する例です。
using System;
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
string filePath = @"C:\path\to\your\sample.exe"; // (1)
try
{
// バッチファイルを実行し、Processオブジェクトを取得(2)
Process process = Process.Start(filePath);
// 終了を待機(3)
process.WaitForExit();
// 終了コードを表示(4)
Console.WriteLine($"アプリケーションの終了コード:{process.ExitCode}");
}
catch (Exception ex)
{
Console.WriteLine("エラーが発生しました: " + ex.Message);
}
}
}
(1)実行対象を文字列に格納しています。対象は、拡張子exeのアプリケーションだけでなく、拡張子batのバッチファイルも指定可能です。
(2)Process.Startメソッドを使用して、filePathで指定した実行可能ファイルのProcessオブジェクトを取得します。
(3)process.WaitForExit()メソッドを使用することにより、対象アプリケーションの終了を待つことができます。
(4)ここに到達したら、外部アプリケーションは終了しています。process.ExitCodeを使用することで、外部アプリケーションの終了コードを参照可能です。終了コードは、通常0の場合が正常終了、0以外の場合は異常終了と扱います。
まとめ
本記事では、C#で外部アプリケーションを起動し、そのアプリが正常終了したかどうかを終了コードによりチェックするサンプルコードを紹介しました。別アプリケーションをコントロールできるようになると、自動化できる領域が広がると思いますので、色々試してみてください。