我正在更新一段旧代码,该代码使用 VBScript 在 IE 中弹出一个窗口。由于某种原因,它喜欢在IE后面打开。 Google 给了我以下几行用于在 VBScript 中设置窗口焦点:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("calculator")
但是,当我在 IE 中运行此命令时,出现错误“需要对象:'WScript'”。
IE 中有没有办法解决这个问题,或者有其他方法可以做到这一点?我已经可以毫无问题地打开和操作 Word 文档。
编辑:为了澄清,我在浏览器(IE)的
Update:我的安全设置很低;所有 ActiveX 设置均处于“启用”状态(这是一项 Intranet 服务)。我测试了代码this问题,计算器打开没有问题。事实上,我让 AppActivate 可以与 JavaScript 一起使用,但它不能与 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>