4

为了实现多线程,我使用 VBA 编写 VBScript 代码 ( VBStr) 并即时写入文件,然后异步启动这些帮助脚本:

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 秒后终止挂起/停滞的脚本 - 怎么做?

4

1 回答 1

5

使用 .Exec 而不是 .Run。返回的WshScriptExec 对象具有监视进程状态和终止进程的方法/属性。

于 2013-07-02T07:45:25.897 回答