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

我正在使用該行來調用返回一些文本的.exe,但也可以將其寫入文件。監視文件更改

我會使用.Exec而不是.Run直接得到結果,但腳本掛起。

我真的不希望定時器檢查輸出文件是否被創建或修改。

我需要的是一種以某種方式捕捉事件的方式。有任何想法嗎?

+0

我不太明白你的問題。也許你可以調用WaitForSingleObject,但是在Google上快速搜索並不能說明如何從VBScript中做到這一點。 – Wodin 2010-12-19 10:41:09

+0

這與監視文件更改有什麼關係? – Nilpo 2012-03-26 12:11:32

回答

0

既然你提到它可能會返回它或將它寫入文件,這是否意味着在該進程寫入文件後它將退出?

如果是這樣,您可以調用Shell.Run方法,將bWaitOnReturn參數設置爲True,並且腳本會在繼續之前等待該過程完成。否則,如果進程可能寫一個文件,然後仍然繼續運行,那麼我認爲你將不得不輪詢以檢查它是否存在,或者你可能創建一個C#或VB.Net exe文件,使用FileSystemWatcher(或使用API​​ FindFirstChangeNotification的正常Win32 exe)查找文件的創建,並在找到該文件時立即存在,然後可以使用設置爲TruebWaitOnReturn運行該進程,但這可能只是過於複雜。

+0

當.exe完成時它退出。 bWaitOnReturn將使腳本掛起。它必須是VBScript。 – 2010-12-20 10:20:48