Я обновляю старый кусок кода, который использует VBScript, чтобы открыть окно в IE. По какой-то причине ему нравится открываться за IE. Google дал мне следующую пару строк для настройки фокуса окна в VBScript:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("calculator")
Однако, когда я запускаю это в IE, я получаю ошибку «Требуется объект:« WScript ».»
Есть ли способ обойти это в IE или другой способ сделать это? Я уже без проблем открываю и манипулирую документом Word.
Редактировать: чтобы уточнить, я запускаю это в теге в браузере (IE), и код падает на первой строке, прежде чем я даже вызываю AppActivate.
Обновление : мои настройки безопасности довольно низкие; все настройки ActiveX включены (это услуга интрасети). Я проверил код из этого вопроса, и калькулятор открылся без проблем. На самом деле я получил 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>