4

私はプロセスを開始しました:

Dim getUdpate as Process
getUpdate = New Process
getUpdate.StartInfo.FileName = "C:\UTIL\GETBTCH.BAT"
getUpdate.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
getUpdate.StartInfo.UseShellExecute = False
getUpdate.StartInfo.WorkingDirectory = "C:\UTIL\"
getUpdate.Start()
getUpdate.Close()

次に、別のプロセスを実行したいのですが、getUpdateプロセスが既に終了しているかどうかを最初に確認したいです。

プロセスがすでに終了しているかどうかを確認するにはどうすればよいですか?

すでにプロセスIDを調べようとしましたが、cmd.exeしか表示されず、プロセスIDとしてcmd.exeがたくさんあるので、それらすべてを停止することはできません。

4

3 に答える 3

6

プロセスのHasExitedプロパティを確認できます。プロセスが終了した場合は true を返し、まだ実行中の場合は false を返します。

Process オブジェクトを呼び出す前Close()に、これを確認する必要があります。getUpdateそのgetProcessため、プロセスが終了するまで開いたままにする必要があります。

于 2013-08-12T02:20:02.057 に答える
2

試す:

getUpdate.WaitForExit();それ以外の

getUpdate.Close()

于 2013-08-12T02:07:53.637 に答える