準備
1. プロジェクトのプロパティを開き、設定タブを開きます。
2. 名前に FileName と入力し、型は string を使用します。値は空欄とします。
3. プロパティを閉じます。
デザイン
1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) にボタン (button2) を配置します。
サンプルコード (C#)
// 名前空間の追加 using System.Diagnostics; using System.Threading; // コード private void button1_Click(object sender, EventArgs e) { ThreadStart ts = new ThreadStart(CalcExec); Thread thread = new Thread(ts); thread.Start(); button1.Text = "電卓実行中..."; while (thread.IsAlive) { Application.DoEvents(); } button1.Text = "button1"; } private void CalcExec() { Process ps = new Process(); ps.StartInfo.FileName = "calc.exe"; ps.Start(); ps.WaitForExit(); }
解説
スレッドを作成して電卓を起動するメソッドを実行します。このメソッド内で電卓が終了するまで待機しています。通常は WaitForExit メソッドを発行すると、アプリケーションが固まってしまう状態になりますが、この場合には、別スレッドで処理していることなので問題ありません。メソッドが終了すると、スレッドも終了となり、スレッドの IsAlive プロパティが false に変わります。
結果
動作確認環境
Visual Studio 2015 Professional (C# 6.0)