在等待WScript.Shell

时间:2017-04-07 07:28:39

标签: vbscript wsh

我正在使用VBS1,启动WScript.Shell,启动另一个VBS2。

VBS1在更大的上下文中运行,我需要保持该进程运行和工作,同时等待我的VBS2的结果(大约20-60秒)

在脚本中使用Sleep是非阻塞的,但阻止了我的进程,所以我需要另一个选项。

这是我到目前为止的代码:

strFinalCommand = "wscript.exe " & CStr(ScriptPath) & " " & CStr(strParams)
Set ObjShell = CreateObject("WScript.Shell")
Set ShellExec = ObjShell.Exec(strFinalCommand)

hitTimeout = False
SleepCounter = 0
Do While ShellExec.Status = 0 'WshRunning
    ActiveSession.Sleep 100   '--> On changing sleep-duration, please change multiplier in IF below, too
    SleepCounter = SleepCounter + 1
    If SleepCounter >= TimeoutDuration * 10 Then 'TimeoutDuration * 2
        hitTimeout = True
        ShellExec.Terminate
        Exit Do
    End If
Loop
Set ShellExec = Nothing
Set ObjShell = Nothing

If hitTimeout = False Then
    ReportSuccess = True
End If

关于该脚本,一切运行正常,但运行进程的其他操作被阻止。

有人可以建议另一个Sleep,这是非阻塞的吗?

0 个答案:

没有答案