< メモ: PropertyPath の XAML 構文 | 開くダイアログ >

January 22, 2009

プロセスを起動する

プロセスを起動する方法を調べた。System.Diagnostics.Process クラスの Start メソッドで起動できるようだ。返されるのは Process クラスのインスタンス。WaitForExit メソッドで終了待機も可能。

private void Button_Click (object sender, RoutedEventArgs e)
{
    var process = System.Diagnostics.Process.Start ("notepad.exe");
    process.WaitForExit ();
    MessageBox.Show ("終了しました");
}

WaitForExit は完全にブロッキングして待機するが、EnableRaisingEvents プロパティを設定するとイベントを発火するようになる。GUI スレッドから起動する場合はこっちのがいいな。

private void Button_Click (object sender, RoutedEventArgs e)
{
    var process = System.Diagnostics.Process.Start ("notepad.exe");
    process.EnableRaisingEvents = true;
    process.Exited += new EventHandler (NotepadProcess_Exited);
}
void NotepadProcess_Exited (object sender, EventArgs e) { MessageBox.Show ("終了しました"); }

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/2299

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?