2012-09-05 22 views

答えて

31

MSDN System.Diagnostics.Process

あなたが今をお知りになりたい場合は、あなたがHasExitedプロパティを確認することができます。

var isRunning = !process.HasExited; 

クイックプロセスの場合は、ただ待ってください。

process.WaitForExit(); 

バックグラウンドで起動する場合は、EnableRaisingEventsをtrueに設定してからExitedイベントを購読してください。

process.EnableRaisingEvents = true; 
process.Exited += (sender, e) => { /* do whatever */ }; 
1

イベントハンドラをExitedイベントに割り当てます。

このMSDNリンクにサンプルコードがあります - ここではこれを繰り返さないでください。

2

あなたは静的Process.Start()コールを使用している場合Processオブジェクトを保存(またはnewでインスタンスを作成)した後、いずれかHasExitedプロパティを確認するか、あなたのニーズに応じて、Exitedイベントをサブスクライブしてください。

+0

Process.Start(string)メソッドは、Processのインスタンスを返すため、使用できます。そのインスタンスのExitedイベントを使用できます。 –

+0

@MikeMayer良い点;私はいつもそれがそのように動作することを忘れる。編集します。 –

9
Process p = new Process(); 
p.Exited += new EventHandler(p_Exited); 
p.StartInfo.FileName = @"path to file"; 
p.EnableRaisingEvents = true; 
p.Start(); 

void p_Exited(object sender, EventArgs e) 
{ 
    MessageBox.Show("Process exited"); 
} 
関連する問題