自分が作っているアプリケーションとは別の、外部アプリケーションを起動するには、Visual BasicではShell関数を使用していた。.NETにおいてもVisualBasic名前空間に存在しているが、せっかくなのでC#流に(C#でもVisualBasic名前空間を使用することは可能)。 C#ではProcessクラスを使用する。 一番簡単な方法はProcessクラスのStartメソッドに、外部アプリケーションのパスを指定する方法。 System.Diagnostics.Process.Start("ping", "localhost"); 外部アプリケーションが終了するまで、待機するにはStartメソッドで取得したProcessクラスオブジェクトのWaitForExitメソッドを呼ぶ System.Diagnostics.Process p = System.Diagnostics.Process.Start("ping", "localhost"); p.WaitForExit(); StartメソッドにはProcessStartInfoクラスのインスタンスを渡すオーバーライドも存在する。ProcessStartInfoクラスを使用すれば、より詳細に外部アプリケーションを制御できる。 例えば、CreateNoWindowsプロパティ、UseShellExecuteプロパティを指定するとpingのプロンプトは表示されない。 System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(); info.FileName = "ping"; info.Arguments = "localhost"; info.CreateNoWindow = true; info.UseShellExecute = false; System.Diagnostics.Process p = System.Diagnostics.Process.Start(info); p.WaitForExit(); Proce