外部アプリケーションが起動して終了するまで待つ

System.Diagnostics.Processクラスで起動したアプリケーションを、終了するまで待機させる方法を説明します。
プロセスのインスタンスのWaitForExitメソッドを使用します。
WaitForExitメソッドを実行して制御が返るまでは、呼び出し側のプログラムは待ち状態で応答しなくなります。

WaitForExitメソッドによる待ち

'アプリケーションを起動して、Processのインスタンスを取得する
Dim hPros As System.Diagnostics.Process = System.Diagnostics.Process.Start("Notepad")

'終了するまで待機する
hPros.WaitForExit()

'不要になった時点で破棄する
hPros.Close()
hPros.Dispose()

 

外部アプリケーションを起動してアイドル状態になるまで待つ

System.Diagnostics.Processクラスで起動したプログラムを、アイドル状態になるまで待機させる方法を説明します。
プロセスのインスタンスの、WaitForInputIdleメソッドを使用します。
WaitForInputIdle メソッドを実行して制御が帰るまでは、呼び出し側のプログラムは待ち状態で応答しなくなります。

WaitForInputIdleメソッドによる待ち

'アプリケーションを起動して、Processのインスタンスを取得する
Dim hPros As System.Diagnostics.Process = System.Diagnostics.Process.Start("Notepad", "C:\work\myfile.txt")

' アイドル状態になるまで待機する
hPros.WaitForInputIdle()

'不要になった時点で破棄する
hPros.Close()
hPros.Dispose()

・上記のサンプルは起動に時間のかかるファイルを指定してみて下さい