LoginSignup
5
4

More than 5 years have passed since last update.

Win7 (64bit) のWSHで Win32 の COM オブジェクトを使う場合の備忘

Last updated at Posted at 2014-08-20

要点としては

  • 32bit の COM オブジェクトを使うのであれば、COM オブジェクトを登録する場合の regsvr32.exe も、スクリプトを動かす cscript.exe / wscript.exe も %windir%\SysWOW64 のバイナリを使う必要がある。
  • Win7 64bit で通常呼び出されるのは %windir%\System32 下にあるバイナリである。 %windir%\System32\cscript.exe からすれば、%windir%\SysWOW64\regsvr3232 で登録したCOMオブジェクトは、あずかり知らぬものであるため、『未登録』と同じ扱いになる。
  • 32bit 環境でオブジェクトを登録してあっても、(それだけでは)64bit のスクリプティングエンジンでは、"Microsoft VBScript 実行時エラー: ActiveX コンポーネントはオブジェクトを作成できません。:" のメッセージで異常終了する。

追記

  • コマンドプロンプトを開き、その中で32bit のコマンドシェル %windir%\System32\cmd.exe を起動する。このようにして32bit の箱を作ってしまえば手間がかからず旧資産を活用できるようだ。 この場合、SysWOW64 のスクリプティングエンジンを明示指定せずとも(スクリプトファイルが hoge.vbs なら hoge を指定するだけで)所期の動作となる。

確認対象

5
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4