终止运行VBScript中间进程

时间:2017-11-02 15:21:20

标签: vbscript command terminate

我有一个VBScript,它会在同一个标​​签中逐个打开多个URL,以便进行数据迁移。我遇到的问题是,如果我的PC或连接速度变慢,我的VBScript将继续运行。最大的问题是Ctrl-L和WshShell.SendKeys:

WshShell.SendKeys "^l"
WScript.Sleep 1000
WshShell.SendKeys "https://www.google.com/"
WshShell.SendKeys "{ENTER}"

命令执行。如果我关闭浏览器,它将继续键入这些。如何停止VBScript中期执行,如果我关闭浏览器,有没有办法让它停止?

1 个答案:

答案 0 :(得分:0)

SendKeys方法是尝试自动执行没有任何编程访问权限的旧程序的最后努力。每its documentation

  

使用SendKeys方法向没有自动化界面的应用程序发送击键。

如果您尝试自动化Web浏览器(可能在某种自动化测试中进行),则应使用专为自动化Web浏览器而设计的库。例如,Internet Explorer有一个实质性的COM自动化界面(参见its documentation,虽然我没有像以前那样在MSDN上看到使用VBScript的样本数量,因为我怀疑他们希望人们迁移到.NET和PowerShell这种事情)。使用实际的对象库进行自动化,您应该可以直接控制它并处理事件,例如您希望在浏览器窗口关闭时执行某些操作。

如果您只是尝试在网页上加载数据,而不是依赖网络浏览器,则可以使用WinHttpRequest object加载数据。

如果您确实需要使用SendKeys来自动执行某些操作,或者想要在某些时候找到停止脚本的方法,最好的方法是让脚本检查是否应该继续在它继续之前运行。例如,在Sleep来电之后,它应检查其自动化状态是否处于预期状态。在没有加载支持更全面的接口的COM对象的情况下,只使用VBScript可以检查很多,但是你可以通过运行WScript.AppActivate并检查其返回值来查看是否存在你正在寻找的窗口仍在那里。如果您的脚本确定它应该终止,它可以调用WScript.Quit方法来执行此操作。