8

前一阵公司需要做一个将ActiveX嵌入浏览器项目,由于起初是用bat手动注册,不方便用户的使用,搜索资料了解到CAB包可以直接在ie浏览器中自行注册,比较方便
1、首先要编写要给inf文件,我是用txt写的,然后直接更改后缀,以下是我的inf
[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
LotusCardActiveX.ocx=LotusCardActiveX.ocx

[LotusCardActiveX.ocx]
file-win32-x86=thiscab
clsid={BD1874A5-3810-4639-8B70-3DDD607BAADB}
RegisterServer=yes
DestDir=11
FileVersion=1,0,0,1

[RegisterFiles]
%11%/LotusCardActiveX.ocx
由于我没有其他dll文件所以只添加了ocx文件
2、编写好inf文件后,使用iexpress.exe将ocx与inf合并成CAB包
首先创建新的自解压缩文件

clipboard.png

选择ActiveX

clipboard.png

将inf与ocx添加进来

clipboard.png

自定义CAB包名并勾选第二个选项

clipboard.png

选择不保存

clipboard.png

点击下一步,创建CAB包,并点击完成

clipboard.png

3、创建好CAB包之后使用makecert注册一个证书
注:如果没有visual studio,自行下载makecert.exe 在exe所在的目录运行cmd并键入命令
具体步骤请参考 制作证书

4、CAB和证书都完成后使用signcode.exe进行签名
具体步骤可参考对cab文件进行签名

这样就完成了ocx文件打包成cab并在ie浏览器加载的整个过程
当然,本地的证书还是会被ie拦截的,因为证书不安全,真正上线还是需要去购买的
测试的时候,可以配置在ie浏览器internet选项中配置

clipboard.png
具体教程可以网上找,很多的
主要参照的文章有
OCX控件打包成CAB并实现数字签名过程
CAB文件打包以及制作证书签名

其中需要的exe我放在百度网盘中,欢迎下载百度网盘
密码:v3kt


Kingsley
129 声望7 粉丝

enjoying and coding