BATファイル等で外部プロセスを起動する場合、かなりの割合で同期制御(終了するまで待機 = Start /w 等で実行)を行うのではないかと思います。これを普通にコーディングで実行するのであれば、次のようになります。
1: Dim resProc (As Process) = Process.Start(“notepad.exe”)
2: resProc.WaitForExit()
![WaitForExit WaitForExit](http://lh4.ggpht.com/-4krhi-aTjB0/Ti6T0IoZbLI/AAAAAAAAAgA/txn1Zj5CMAc/WaitForExit_thumb%25255B10%25255D.png?imgmax=800)
今回は前回利用したワークフローに追加しています。Assign アクティビティにて起動したメモ帳を終了するまで後続の InvokeMethod アクティビティにて待機させています。起動時に Process.Start メソッドの戻り値として取得した結果(Processクラスのインスタンス)のメソッドを呼び出しますので、TargetType は null のままにしておき TargetObject に戻り値の変数を設定します。MethodName には今回呼び出したい WaitForExit とメソッド名を設定します。
以上の設定にて、起動した外部プロセスが終了するまで待機するワークフローができあがります。
0 件のコメント:
コメントを投稿