我正在更新一段使用VBScript在IE中打开窗口的旧代码。不知何故,它喜欢在IE后面打开。谷歌给了我以下几行VBScript设置窗口焦点的代码:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("calculator")
然而,在IE浏览器中运行时,我收到了“对象必需:'WScript'”的错误消息。是否有任何绕过此错误的方法或其他方法可以实现这一功能?我已经成功打开和操作了一个Word文档。
编辑:澄清一下,我在浏览器(IE)中运行了这个代码段,并且代码在第一行崩溃,甚至在我调用AppActivate之前就崩溃了。 更新:我的安全设置很低;所有ActiveX设置都是启用的(这是一个内部服务)。我测试了这个问题中的代码,计算器没有问题地打开了。事实上,我已经用JavaScript使AppActivate工作了,但它不能用VBScript。以下是可行的JavaScript代码:
<script type="text/javascript">
function calcToFrontJ(){
wshShell = new ActiveXObject("WScript.Shell");
wshShell.AppActivate("Calculator");
}
</script>
VBScript无法工作:
<script type="text/vbscript">
Public Function calcToFrontV()
'Set WScript = CreateObject("WScript.Shell") 'breaks with or without this line
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("Calculator")
End Function
</script>
我想我总可以重构到JavaScript,但我真的很想知道这个VBScript发生了什么。
最终答案:
<script type="text/vbscript">
Public Function calcToFrontV()
'must not use WScript when running within IE
Set WshShell = CreateObject("WScript.Shell")
WshShell.AppActivate("Calculator")
End Function
</script>
<script type="text/vbscript">
标签中,并在浏览器中运行。我实际上是使用“WINWORD”(进程名称)调用AppActivate,但是当我尝试创建WshShell对象的第一行代码崩溃了。 - jtpereyda