2010-12-19 20 views
1
Call CreateObject("WScript.Shell").Run(some.exe,0,False) 

私はその行を使用してテキストを返す.exeを呼び出しますが、ファイルに書き込むこともできます。ファイルの変更を監視する

.Runの代わりに.Execを使用して結果を直接取得しますが、スクリプトがハングします。

出力ファイルが作成または変更された場合、私は本当にタイマーチェックをしたくありません。私は必要なもの

は何とかイベントをキャッチする方法です。何か案は?

+0

私は非常にあなたの質問を理解していません。たぶんWaitForSingleObjectを呼び出すことはできますが、Googleのクイック検索ではVBScriptからこれを行う方法は示されていません。 – Wodin

+0

これはファイルの変更を監視することと何が関係していますか? – Nilpo

答えて

0

あなたはそれを返すか、ファイルに書き込むかもしれないいずれかのことを言及しているので、それはプロセスの後に、それが終了しますファイルに書き込まれたことを意味するのでしょうか?

bWaitOnReturnパラメータをTrueに設定してShell.Runメソッドを呼び出すだけで、処理が完了するまでスクリプトが処理を完了するまで待つことができます。

もし、プロセスがファイルを書き込んでも実行し続けるなら、それが存在するかどうかを調べるためにポーリングするか、FileSystemWatcherを使用するC#またはVB.Net exeを作成する必要がありますまたはAPI FindFirstChangeNotificationを使用して、通常のWin32 exeファイル)は、ファイルの作成を探すために、それが1つを見つけたとき、それはすぐに存在し、その後、あなたがTrueに設定bWaitOnReturnとそのプロセスを実行することができますが、それはおそらく過度に複雑なものをです。

+0

.exeが終了すると、終了します。 bWaitOnReturnはスクリプトをハングさせます。それはVBScriptでなければなりません。 –

関連する問題