Geo-Info Technical Blog

Blogging 3S , Programming ,etc.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ActiveX控件cab打包、Web嵌入、自动升级攻略

Posted on 2011-09-14 16:36  cosophy  阅读(4395)  评论(0编辑  收藏  举报

1.       打包

ocx控件及DLL等依赖文件打包成CAB

1)打包前,先建立一个inf文件以提供安装信息,inf文件的结构如下:

[version]

signature="$CHINA$"

AdvancedINF=2.0

 

[Add.Code]

WebVideoActiveX.ocx=WebVideoActiveX.ocx

midas.dll=midas.dll

……

 

[WebVideoActiveX.ocx]

file-win32-x86=thiscab  

RegisterServer=yes  

clsid={FA90127B-CF0D-4B63-B327-5221B108285C}  

DestDir=11

FileVersion=2,0,0,0

[midas.dll]

file-win32-x86=thiscab  

RegisterServer=yes                       

DestDir=11  

FileVersion=7,0,4,453

……

 

其中,[version][Add.Code]项是必须的[version]为该inf文件的版本信息,[Add.Code]是需要安装的控件和依赖文件,格式如上;后面的是每个安装文件具体信息,包括:FileVersion文件版本、DestDir安装目录(11即默认的system32目录)、RegisterServer是否需要注册、file-win32-x86代表x86平台、thiscab意指包含该INFCAB文件、clsid是控件的CLSID

2)使用Windows自带工具IExpresssystem32下)进行CAB包制作:

inf文件、ocx控件文件、DLL等依赖文件全部添加进去,注意选中 Store files using Long File Name inside Package”。

2.        页面嵌入

 使用<object>标签进行嵌入,格式如下:

 <OBJECT ID="CPServer" CLASSID=" FA90127B-CF0D-4B63-B327-5221B108285C "

       HEIGHT=0 WIDTH=0 ALIGN=LEFT

CODEBASE="ocx /evS1300.cab#Version=2,0,0,0">

  </OBJECT>

其中:CLASSIDocx控件的CLSIDCODEBASE为该控件(cab)的存放位置,version为控件的版本号(即ocx文件的版本)。

3.        版本升级

若要对控件进行升级,需将更新的文件重新打包,并更新inf中相应文件的版本号,以及网页中嵌入控件(codebase中)的版本号。

这样,用户在重新打开页面时,即可自动升级安装控件。

4.        使用说明

在客户端,对于未签名的ActiveX控件,需要对IE进行相关设置才可以下载并自动安装。

在【Internet选项>安全>Internet>自定义级别>ActiveX控件和插件】下:将【下载未签名的ActiveX控件】改为提示或启用。 

或先将相应网址加入信任区域,对信任区域的安全进行以上设置。

 

相关参考:

http://www.cnblogs.com/chinhr/archive/2008/02/25/1080775.html

http://blog.csdn.net/qcdn/article/details/2156655

http://zhanyonhu.blog.163.com/blog/static/1618604420083308494707/