VBScriptで以下のコードを実行すると, “ActiveX component can’t create object” というエラーが発生する.
技術ノート
2010/09/10
[番号]
技術ノート KGTN 2010091001
[現象]
VBScriptで以下のコードを実行すると, “ActiveX component can’t create object” というエラーが発生する.
Set objShell = WScript.CreateObject("Shell.Application")
…
For Each objWindow in objShell.Windows
[説明]
デスクトップ (Windows Shell) の機能を使用しているため,このエラーが発生します.以下の方法で,セッションの開始時に explorer.exe を起動することで,このエラーを回避することが出来ます.
レジストリエディタを起動する.
HKLM¥SOFTWARE¥GraphOn¥Bridges¥1.0.0¥System¥Processes へ位置付ける.
DWORD値を作成する.
名前を explorer.exe ,値を 0 にする.
HKLM¥SOFTWARE¥GraphOn¥Bridges¥1.0.0¥System¥Run¥LocalMachine へ位置付ける.
DWORD値を作成する.
名前を explorer.exe ,値を 0 にする.
レジストリエディタを終了する.
注 意
この方法によってエラーは発生しなくなりますが,各セッションで explorer.exe を起動するため,パフォーマンス (メモリや速度) が低下します.また, HKLM¥SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Run に登録されたプログラムが自動的に起動されるようになりますので,不要なプロセスを削除して下さい.適用に当たっては,事前に十分な検証を行うようにして下さい.