ActiveX を "事前承認済み" にして 警告回避

0 件のコメント

ActiveX を警告なしに実行する方法はたぶん次の通り。

  • ActiveXにデジタル署名する
    • 一般的な認証局で発行したデジタル署名を利用
    • オレオレ認証局で発行したデジタル署名を利用
  • ActiveXを登録時に安全マークをつける
    • コード上に実装する(→詳細
    • レジストリに"事前承認済み"を書き込む
    • レジストリに"安全マーク"を書き込む(→詳細

"ActiveX に安全マーク をつけて 警告回避" では回避できないことがあるようだったので、 別の方法(レジストリに"事前承認済み"を書き込む方法)を調べてみた。

想定している環境は次の通り。ただ、実際は Internet Explorer 7 以上が対象になるみたい。

  • Windows7 32bit or 64bit
  • Internet Explorer 8, 9

上記環境において、ActiveX を "承認済み" とするためには、インストール時に次のようなレジストリ登録を行う。

32bit OS の場合

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Ext\PreApproved\{YOURGUID-0000-0000-0000-000000000000}

64bit OS の場合

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Ext\PreApproved\{YOURGUID-0000-0000-0000-000000000000}
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Ext\PreApproved\{YOURGUID-0000-0000-0000-000000000000}

※"YOURGUID-0000-0000-0000-000000000000"は任意に読み替えてください。

64bit の Windows に付属する Internet Explorer を何も考えずに起動すると、32bit IE が起動してしまう。
32bit で動作するアプリ は HKLM\SOFTWARE\Wow6432Node 以下を読みに行くので、32bit 用のレジストリを登録していないと何度やっても警告はでてしまう。

やられたー…と、思ったけど、64bit も 32bit も動かそうとしてくれたわけだから仕方ないとあきらめるか…

まだ、もう少し不十分な感じがいなめないけど…このあたりまでで。。

参考は以下のサイト