• ベストアンサー

WSH オブジェクト作成時の違い

JScriptです。 var obj = WScript.CreateObject("WScript.Shell"); と var obj = new ActiveXObject("WScript.Shell"); 等で振る舞いが変わってくる事はあるでしょうか? またどちらを使うべきでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#251971
noname#251971
回答No.1

どちらの場合も生成されるのは同じCOMのオブジェクトなので振る舞いに違いはありません。 前者はWSHが提供するCOMオブジェクト生成インターフェースで、後者はJScriptが提供するCOMオブジェクト生成インターフェースというだけです。 作成対象がWSHと無関係ならば、JScriptの記述を使う方がコピペ出来て良いということもあるかも知れませんが、作成するオブジェクトがWSHのものなので、どちらを使うべきとかは無くて単純に好みで決めて良いと思います。 このあたりを気にするということは、ある程度コードを書く思想というかスタイルがある方と思いますので、書いているコードのコンテキストに合わせて選べば良いかと思います。

popepon
質問者

お礼

ご回答ありがとうございます。大変参考になりました。 ActiveXObjectのIEからくるセキュリティ的な話(作成出来ないとか)が あったようなので気になっていたのですが特に差異は無いとの事しょうか? 個人的にはXMLHTTPオブジェクト等をCreateObjectで作成するのは 何か違和感を感じるので使い分けようかと思いますが 動作に変わりは無いとの事なので確信が持てて良かったと思います。 有難う御座いました。

その他の回答 (1)

noname#251971
noname#251971
回答No.2

自分の回答は質問のコンテキストが普通にWindows上で実行するWSHスクリプトの前提で書いていました。 セキュリティ的な話が絡んでくるのは、HTML内のスクリプトとして実行する場合の話ではないですか? その場合は、ブラウザの設定等でオブジェクトが生成できる/できないとかがあるかとおもいますが、それはどのインターフェースを使うかではなくて、どのオブジェクトをというのが問題になってくるかと思います。 (ただ、HTML内からの話は自分はあまり利用した事が無いので詳しくありません^^;)

popepon
質問者

お礼

ご回答有難う御座います。 HTML内の話なんですね、参考になりました。

関連するQ&A