none
shellのwindowsコレクションを参照すると「0x800A0046」で落ちる RRS feed

  • 質問

  • 皆様お世話になってます。

    以下の環境で「書き込みができません。」を吐いてJavascriptが終了します。


    ・Windows7(そろそろサポート切れ・・・)

    ・InternetExplorer8

    ・以下のコードを実行

    <script language="javascript">
    
    	try {
    		var o = new ActiveXObject("Shell.Application");
    		
    		o.Windows();
    	} catch (e) {
    		alert(e.name + ":" + e.description + "(" + e.number + ")");
    	}
    
    </script>

    結果

    ・上記のo.windowsを実行するときに、ダイアログが表示。「許可する」を押下するも

     エラー出力「書き込みできません」「-2146828218」

    ・エラーの内容は、書き込みできません。というか -2146828218 → 0x800A0046 Permission Denied

     許可されていません。というエラーである

    ・スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行 を

     「ダイアログを表示」から「許可する」に変更すると正常動作する

    このことから、

    ・許可されていないActiveXオブジェクトなのでダイアログ表示される

    ・手動で許可を与えるも、インターネットオプション上「許可する」とされていないのでエラーになる。

    という推測をしているのですが、正しいでしょうか。

    過去に類似した内容で、MS側の見解があるようなら、見つけられなかったので教えていただきたいです。

    よろしくお願いします。

    2019年12月2日 7:01

すべての返信

  • © ウィンドウズスクリプトプログラマ - Windows Script Programmer 2019


    win10+ie11で。
    「スクリプトを実行しても安全だとマークされていないActiveXコントロールの初期化とスクリプトの実行」
    は「無効にする」で、「ダイアログを表示」に変えても、ダイアログは出ないで、「無効にする」と同様にエラー。
    つまり、「ダイアログを表示」は潰されてる。

    win7+ie8でも「ダイアログを表示」は潰し方が違うだけで潰されてるのでしょう。

    追記、検索すると、xpで推奨設定が「ダイアログを表示」に変更。vistaで「無効にする」に変更されたみたい。それで、「ダイアログを表示」に設定してても「無効にする」に読み替える処置が取られたのかも。
    2019年12月4日 2:36
  • haradevさん、こんにちは。フォーラムオペレーターのクモです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    「HTA コード」なんか開発していますか?
    「はい」の場合は、次のコードを参照して、HTA extensionで保存し実行してください。
    <script language='jscript'>
      function StartSetup(sApp) {
          try {
          alert(sApp);
           var oShell = new ActiveXObject("WScript.Shell"); 
           oShell.Run(sApp); 
       }
       catch(ex)
       {}
       finally{}
    
        }
    </script>
    
    <input type="Button" value="Installation" onClick='StartSetup("CMD /K DIR C:\\")'/>
    

    参照リンク:
    https://social.technet.microsoft.com/Forums/scriptcenter/en-us/141e9dca-8067-4997-abc1-ad237de59ca7/ie-10-unable-to-create-activexobject-via-javascript?forum=ITCG

    もし問題が解決されなかったら、ご連絡のほどお願いします。

    どうぞよろしくお願いいたします。 

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年12月5日 9:27
    モデレータ