著作一覧 |
何をしてもHKCR\CLSIDの下にASRが登録できないので閉口する。しかし生成できる。
考えてみたら64ビットWindowsではHKCR\CLSIDは64ビット用になっていたのか。
結局 HKCR\Wow6432Node\CLSID の下に登録されていた。
VBScriptからASRを呼ぶテストをしていて妙な現象に悩む。
VC6++から実行するとデバッグモードだろうが、リリースモードだろうが実行できる。
しかし、CMD.EXEからCScriptを指定しようが直接vbsを指定しようが、オブジェクトの生成に失敗する。
まったくわからん。
で、上のレジストリからふと、64ビットcscriptが実行されているのが原因ではないかと気づく。
おそらく、Win64は賢く32ビットアプリケーションのVC++6が実行する場合は32ビットアプリケーションを実行しているので(PATHは\windows\system32\cscript.exeを指定しているわけだが)、そこのシームレスさにだまされていたということだ。
で、探してみたら、C:\windows\syswow64\cscript.exeというのが見つかる。
で、これを指定してvbsを実行すると無事、ASRの実行に成功。
なるほど、という感じだ。
それにしてもMSHTAは、このあたりをどうしてうまく処理できるんだろうか?
ジェズイットを見習え |
HTAは32bit版のIEに関連づけられているので問題なしと言うことなんでしょう。<br><br>COMですが、64bit版でのCOMとか、32bitと64bitとの間でのCOM接続機能とか資料があんまり無いんですよね。
>.HTAは32bit版のIEに関連づけられているので問題なし<br>それはMSの賢明な判断ですね(ActiveXコントロールのほとんどは32ビットのままだろうし)。<br>>資料があんまり<br>それ以前に自分が64ビット環境を知らなすぎる事実に愕然でした。