32

C# では、次のコマンドでプロセスを開始できます

process.start(プログラム.exe);

プログラムがまだ実行中かどうか、または終了したかどうかを確認するにはどうすればよいですか?

4

5 に答える 5

67

MSDN System.Diagnostics.Process

今すぐ知りたい方はHasExited物件をチェックしてみてください。

var isRunning = !process.HasExited;

お急ぎの場合はそのままお待ちください。

process.WaitForExit();

バックグラウンドで起動している場合は、EnableRaisingEvents を true に設定した後、Exited イベントをサブスクライブします。

process.EnableRaisingEvents = true;
process.Exited += (sender, e) => {  /* do whatever */ };
于 2012-09-05T02:45:12.790 に答える
16
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");
}
于 2012-09-05T02:46:56.237 に答える
3

Process静的Process.Start()呼び出しを使用する (または でインスタンスを作成する) 場合は、オブジェクトを保存してから、必要に応じてプロパティをnew確認するかHasExited、イベントをサブスクライブしてください。Exited

于 2012-09-05T02:46:31.853 に答える
1

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

その MSDN リンクにサンプル コードがあります。ここでは繰り返しません。

于 2012-09-05T02:44:51.403 に答える
1

Process クラスの MSDN ドキュメントを参照してください。

特に、リッスンできるイベント ( Exited ) があります。

于 2012-09-05T02:46:40.157 に答える