Back to Top

プログラムの覚書

Category: プロセス

VB.NET外部アプリケーションを起動して待つ

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

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()

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

 

VB.NET外部アプリケーションを起動する

外部アプリケーションの起動する方法について説明します。

System.Diagnostics.ProcessクラスのStartメソッドを使用して外部アプリケーションを起動します。

Process.Startメソッドを使用して起動させる

'メモ帳を起動する
System.Diagnostics.Process.Start("Notepad")


'ファイルを指定してメモ帳を起動する
System.Diagnostics.Process.Start("Notepad", "C:\work\myfile.txt")

起動の詳細情報を指定して起動させる

詳細の設定にはProcessStartInfoクラスを設定します。

'ProcessStartInfoインスタンスを生成する
Dim hPSI As New System.Diagnostics.ProcessStartInfo()

'起動するアプリケーションを設定する
hPSI.FileName = "Notepad"

'コマンドライン引数を設定する
hPSI.Arguments = "C:\work\myfile.txt"

'新しいウィンドウを作成するかどうかを設定する
hPSI.CreateNoWindow = True

'起動時のウィンドウの状態を設定する(最大化)
hPSI.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized

System.Diagnostics.Process.Start(hPSI)