C#でのやり方がわからなかったので、とりあえずやってみた。
実行
using System.Diagnostics;
private void Start(string exeName)
{
// アプリケーションの実行
Process.Start(exeName);
// パラメータ、オプションを渡すには
// Process.Start(exeName, "オプション");
}
こんだけ。簡単簡単。
終了するまで待機
using System.Diagnostics;
private void Start(string exeName)
{
// アプリケーションの実行
Process process = Process.Start(exeName);
// 終了するまで待機する
process.WaitForExit();
MessageBox.Show("終了したよ.");
}
WaitForExit(1000)とすると終了ではなくて、1秒だけ待つ。
終了するまで非同期で待機
using System.Diagnostics;
private void Start1(string exeName)
{
// オブジェクトの生成
Process process = new Process();
// ファイルの指定
process.StartInfo.FileName = exeName;
// イベントハンドラの設定
process.SynchronizingObject = this;
process.Exited += new EventHandler(Callback);
// プロセスが終了したときにイベントを発生させる
process.EnableRaisingEvents = true;
// 実行
process.Start();
}
private void Callback(object sender, EventArgs e)
{
// プロセスが終わった時に呼ばれる
MessageBox.Show("終了したよ.");
}
終了したときにCallback関数が呼ばれる。