準備
(なし)
デザイン
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) を配置します。