2014年4月4日金曜日

Ffmぺsync ver.1 プロシージャ解説5 キャンセル処理

Ffmぺsync ver.1  ffmpeg.exeを手軽に使うためのファイル同期風フロントエンドVBスクリプト 本編

①以前の処理キャンセルのフラグは、フォルダ指定や処理モード選択と要所に限られていて、処理中のキャンセルは"ffmpeg.exe"実行中断により発生した変換ファイルのエラーをキーとしていた。つまり、単なるファイル事前調査や一覧出力は、一度実行を始めるとキャンセルできなかった。

②一つ前の Ffmぺsync ver.1 「検索アイテムが大量にあった場合の処理キャンセル」を入れてみた では、ログの画面表示をしているIEが閉じたのをフラグとして、前回では出来なかったファイル事前調査や一覧出力処理の中断フラグとした。

③今回の修正では、IEが立ち上がらなかった場合の処理の中断手段の提供を目指した。適当な非同期のポップアップが無かったので、Msgboxに似たインターフェイスを持ち、自動的に閉じる時間を指定できるWScript.ShellオブジェクトのPopupメソッドを使用した。

かなり省略した例。 Popup表示して五秒以内にキャンセル【OK】をクリックすると、フラグが立ち処理は中断。何もしなければ継続実行する。
Set oWSSHEL = WScript.CreateObject("WScript.Shell")

If vbOK =oWSSHEL.Popup ("処理を中止しますか? 中止は5秒以内に【OK】ボタン" , 5 , "処理前カウント" , vbExclamation+vbOKOnly) Then
bIECANCEL = True
End if

 これを処理の一定回数毎にポップするようにした。 これでIEが無かったり、立ち上がらなかったりしても処理の停止が可能になったと、、、思う。 苦肉の策だけどね。

 キャンセル処理が入れ子になった場合の動作が少々怪しくもあるが、ショウガナイト割り切るしかないかな。
 あと、ログ出力も修正。キャンセル処理が入ったので出力タイミングが変に、、、いや前から変だったかorz

0 件のコメント:

コメントを投稿