トップC# > 外部プログラム(プロセス)を起動する

外部プログラム(プロセス)を起動する

外部プログラムを起動する

外部プログラムは Processクラス(System.Diagnostics名前空間)の Startメソッドで起動できる。

  Process p = Process.Start("test.exe");
  p.WaitForExit();              // プロセスの終了を待つ
  int iExitCode = p.ExitCode;   // 終了コード

コマンドパラメータは第二引数とする。

  Process p = Process.Start("test.exe", "abc 123");
  p.WaitForExit();              // プロセスの終了を待つ
  int iExitCode = p.ExitCode;   // 終了コード

終了を待つのではなく、終了イベントを受け取る方法もある。

  Process p = Process.Start("test.exe");
  p.EnableRaisingEvents = true;
  p.Exited += new EventHandler(process_Exited);
  void process_Exited(object sender, EventArgs e) {
      Process p = (Process)sender;
      // 終了処理
  }

コマンド・プロンプトを表示せずにコマンド・アプリケーションを実行する

上で述べた方法でコマンド・アプリケーションを起動した場合、常にコンソール・ウィンドウが 開く。 これを避けるには ProcessStartInfo を使用する。

  ProcessStartInfo psInfo = new ProcessStartInfo() {
    FileName = "test.exe",    // 実行するファイル 
    Arguments = "abc 123",    // コマンドパラメータ(引数)
    CreateNoWindow = true,    // コンソール・ウィンドウを開かない
    UseShellExecute = false,  // シェル機能を使用しない
  };
  Process p = Process.Start(psInfo);
  p.WaitForExit();	// プロセスの終了を待つ

リファレンス

[1] コマンド・プロンプトを表示せずにコンソール・アプリケーションを実行するには?[C#、VB]