Call CreateObject("WScript.Shell").Run(some.exe,0,False)
私はその行を使用してテキストを返す.exeを呼び出しますが、ファイルに書き込むこともできます。ファイルの変更を監視する
.Run
の代わりに.Exec
を使用して結果を直接取得しますが、スクリプトがハングします。
出力ファイルが作成または変更された場合、私は本当にタイマーチェックをしたくありません。私は必要なもの
は何とかイベントをキャッチする方法です。何か案は?
Call CreateObject("WScript.Shell").Run(some.exe,0,False)
私はその行を使用してテキストを返す.exeを呼び出しますが、ファイルに書き込むこともできます。ファイルの変更を監視する
.Run
の代わりに.Exec
を使用して結果を直接取得しますが、スクリプトがハングします。
出力ファイルが作成または変更された場合、私は本当にタイマーチェックをしたくありません。私は必要なもの
は何とかイベントをキャッチする方法です。何か案は?
あなたはそれを返すか、ファイルに書き込むかもしれないいずれかのことを言及しているので、それはプロセスの後に、それが終了しますファイルに書き込まれたことを意味するのでしょうか?
bWaitOnReturn
パラメータをTrue
に設定してShell.Runメソッドを呼び出すだけで、処理が完了するまでスクリプトが処理を完了するまで待つことができます。
もし、プロセスがファイルを書き込んでも実行し続けるなら、それが存在するかどうかを調べるためにポーリングするか、FileSystemWatcherを使用するC#またはVB.Net exeを作成する必要がありますまたはAPI FindFirstChangeNotification
を使用して、通常のWin32 exeファイル)は、ファイルの作成を探すために、それが1つを見つけたとき、それはすぐに存在し、その後、あなたがTrue
に設定bWaitOnReturn
とそのプロセスを実行することができますが、それはおそらく過度に複雑なものをです。
.exeが終了すると、終了します。 bWaitOnReturnはスクリプトをハングさせます。それはVBScriptでなければなりません。 –
私は非常にあなたの質問を理解していません。たぶんWaitForSingleObjectを呼び出すことはできますが、Googleのクイック検索ではVBScriptからこれを行う方法は示されていません。 – Wodin
これはファイルの変更を監視することと何が関係していますか? – Nilpo