现在的位置: 首页 > 综合 > 正文

ActiveX打包cab实现浏览器提示安装注册控件

2012年09月22日 ⁄ 综合 ⁄ 共 1332字 ⁄ 字号 评论关闭

实验前提:

                1. 有一个可注册的COM组件(如ActiveX)

2. 最好能有一台Windows server 2003作为证书服务器,用来申请签名代码的证书(本例使用从证书服务器申请证书签名)

3. 代码签名工具

实验步骤:

1.编写INF安装配置文件,没怎么研究过INF的写法就不在这里做过多说明,贴个示例

; Sample INF file for CryptoAPI.DLL
[version] 
; version signature (same for both NT and Win95) do not remove
signature="$CHICAGO$"
AdvancedINF=2.0  

[Add.Code]
CryptoAPI.dll=CryptoAPI.dll
CryptoAPI.inf=CryptoAPI.inf

[CryptoAPI.dll]
file-win32-x86=thiscab
clsid={CB955C27-9709-482A-8EEF-1DF63722A970} 
FileVersion=1,0,0,1 
RegisterServer=yes

[CryptoAPI.inf]
file=thiscab
; end of INF file

2.使用SigningTools里面的CABARC打包CAB,命令示例

"SigningTools/CABARC" -s 6144 n CryptoAPI.cab CryptoAPI.dll CryptoAPI.inf

3.配置证书颁发机构,创建具有代码签名功能的证书模板,申请签名代码的证书和私钥

4.运行signcode.exe,会进入签名向导,选择能够签名的证书及待签名的cab包即可

在填写描述和web位置后,可以在后面下载ActiveX控件时看到该提示信息

之后会提示签名成功.

5.验证代码签名,输入以下命令会有安装提示,如果出现发布者不受信任等情况,可能是签名证书的根证书未被添加到系统受信任根证书

可以尝试下载CA根证书,并添加至系统受信任证书库即可

"SigningTools/chktrust.exe" CryptoAPI.cab

6.在html中使用cab

		<object classid="clsid:E14615FC-8DC0-47A6-9512-E57320F5752C" id="obj" CODEBASE="CryptoAPI.cab#Version=1,0,0,1"></object>

7.在刚填写的web位置同域名下的页面(其他网页测试会提示非安全的控件)测试即会提示下载注册控件,如果还未出现则还是可能为未将签名的根证书添加信任


注:SigningTools下载地址

参考:CODE PROJECT

在某些情况需要用户手动下载安装注册的话可以考虑EXE,

下面说下EXE安装文件注册ActiveX控件

使用Visual Studio的Setup Project即可轻松完成该步骤


新建了安装的工程后,可以通过以上方式查看User Interface,可修改安装步骤

一般将ActiveX安装到默认位置,则删除掉Install Folder步骤

然后查看File System,在指定文件夹放入ActiveX组件

在DLL的属性窗口中,修改Register的属性值为vsdrfCOMSelfReg

抱歉!评论已关闭.