VBScript を使用して IE でウィンドウを表示する古いコードを更新しています。何らかの理由で、IE の背後で開くのが好きです。Google は、VBScript でウィンドウ フォーカスを設定するための次の 2 行を提供してくれました。
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("calculator")
しかし、これを IE で実行すると、「必要なオブジェクト: 'WScript'」というエラーが表示されます。
IEでこれを回避する方法、またはこれを行う別の方法はありますか? 既に問題なく Word 文書を開いて操作しています。
編集:明確にするために、ブラウザー (IE) の <script type="text/vbscript"> タグでこれを実行していますが、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>