未分類

C# 別のアプリケーションを起動して終了するまで待機する (2)

準備

(なし)

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。

サンプルコード (C#)

// 名前空間の追加
using System.Diagnostics;

// コード
private void button1_Click(object sender, EventArgs e)
{
  Process ps = new Process();
  ps.StartInfo.FileName = "notepad.exe";
  
  button1.Text = "電卓実行中...";
  ps.Start();

  while (!ps.HasExited)
  {
    System.Threading.Thread.Sleep(500);
    Application.DoEvents();
  }
  button1.Text = "button1"; 
}

解説

電卓を起動して、終了するまで待機します。プロセスの起動状態は HasExited プロパティで判断できます。このプロパティが false の間はループ処理を行い、DoEvents メソッドにより、他のメッセージを処理しています。このため、呼び出し元アプリケーションが固まることはありません。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)
2. フォーム (Form1) にリストボックス (listBox1) を配置します。

-未分類