2013-07-02 4 views
4

Для достижения многопоточность, я пишу с помощью VBA построить VBScript код (VBStr) и запись в файл на лету, прежде чем запускать эти вспомогательные скрипты asynchonously:управления VBScript с помощью VBA

Dim VBFile As Object 
Dim VBPath As String 
VBPath = CurrentProject.Path & "\" & GUID() & ".vbs" 
Set VBFile = CreateObject("Scripting.FileSystemObject").CreateTextFile(VBPath) 
VBFile.WriteLine VBStr 
VBFile.Close 

Dim Shell As Object 
Set Shell = CreateObject("Wscript.Shell") 

Shell.Run """" & VBPath & """" 

Однако, как управлять этими сценариями в VBA? Кажется, я не могу найти ручку или ссылку на них. Скажем, я хочу прекратить висячие/застопорившиеся скрипты после 60 секунд - как это сделать?

ответ

5

Используйте .Exec вместо .Run. В возвращаемом WshScriptExec Object есть методы/свойства для контроля состояния и завершения процесса.

Смежные вопросы