[转]如何让ActiveX OCX控件下载并自动更新
2010-11-29 15:15
295 查看
将控件打包成CAB加数字签名方法实现控件自动更新
1、所需工具
==============
cabarc.exe ———用于将ocx及所需dll文件打包成cab文件
cert2spc.exe ——-将cer证书转为spc证书
chktrust.exe ——-检测签名是否正确
makecert.exe——制作数字证书
signcode.exe
================
2、流程
以上根据需要来确定采用哪些工具,这里我采用了makecert.exe 、cert2spc.exe来制作认证的证书,signcode.来进行数字签名。
进入DOS状态,进入上述工具所在目录,输入以下命令:
一、
makecert -sv test.pvk -n ”CN=test,E=test@test.com,O=test” test.cer
这个是制作证书, -sv是制作加密的文件,会给证书设定公钥和私钥(-sk则生成没有密钥的证书),CN是公司,E=EMail,O=认证公司的名称,test.cer是生成文件的名称。
二、然后运行:Cert2SPC test.cer test.spc 将cer证书转为spc证书。
这时制作的证书是没有任何认证公司认证的,通过认证的一年需要大约400美金。
三、创建INF文件
[Version]
signture=”$Title$”
AdvancedINF=2.5
[Add.Code]
Player.ocx = Player.ocx
avcodec.dll = avcodec.dll
avformat.dll = avformat.dll
avutil.dll = avutil.dll
H264Decoder.dll = H264Decoder.dll
NetLink.dll = NetLink.dll
[NetLink.dll]
file-win32-x86=thiscab
[avcodec.dll]
file-win32-x86=thiscab
[avformat.dll]
file-win32-x86=thiscab
[avutil.dll]
file-win32-x86=thiscab
[H264Decoder.dll]
file-win32-x86=thiscab
[Player.ocx]
file-win32-x86=thiscab
clsid={CD55E5EC-F555-5555-5555-555A55C55DC5}
RegisterServer=yes
FileVersion=1,0,0,2
其中大扩后中的类容对于dll文件来说若是不需要注册则可以省略。
四、使用cabarc.exe将ocx及所需dll文件和inf文件打包成CAB文件包
将所需的ocx和dll及inf文件放在同一个目录下,然后在dos下进入到该目录下,键入以下命令:
F:\Cabsdk\BIN\CABARC -s 6144 n CamView.CAB Player.ocx avcodec.dll avformat.dll avutil.dll H264Decoder.dll NetLink.dll Player.inf
注 意这里“F:\Cabsdk\BIN\”是cabarc.exe所在目录,CamView.CAB是要生成的CAB文 件,NetLink.dll avcodec.dll avformat.dll avutil.dll H264Decoder.dll Player.ocx Player.inf 是所需的文件,按重要顺序排列,inf文件放在最后。系统提示成功之后,会在ocx同目录下生成CamView.CAB文件。打包还可以使用其他工具,如 老毛桃cab打包等。
五、使用signcode.exe给OCX文件进行数字签名。(图形化界面操作)
双击signcode.exe后出现一个数字签名向导
下一步 选择需要签名的文件(CamView.cab)
下一步 这里选择了自定义
下一步 选择签名证书,从文件选择,选择刚才做好的test.spc
下一步 私钥,磁盘上的私钥文件,点浏览选择刚才做好的test.pvk
下一步 输入密码
下一步 选择算法,这里我选择的是sha1
下一步 默认
下一步 描述:输入安装证书时提示的文字,随便输入
下一步 时间 默认
下一步 完成
六、将CAb文件挂上服务器并修改网页中控件部分
<OBJECT id=CamViewer classid=”clsid:CD55E5EC-F555-5555-5555-555A55C55DC5″ CODEBASE=”CamView.CAB#version=1,0,0,2″height=500 width=645 hspace=0 vspace=0 VIEWASTEXT> </OBJECT>
其中CODEBASE=”这里填写CAB文件的路径,#version=1,0,0,2″是控件的版本号,要与ocx的版本号一致。
七、升级
只要在源代码中更改Player.ocx文件中对应的版本 号,并同时更改网页调用控件的版本号就可以了,下一次客户访问这个页面时会自动检测并提示安装新控件,新控件会覆盖旧版本的控件。
原文地址:http://hi.baidu.com/knowise/blog/item/81b666971e11db6154fb96fc.html
1、所需工具
==============
cabarc.exe ———用于将ocx及所需dll文件打包成cab文件
cert2spc.exe ——-将cer证书转为spc证书
chktrust.exe ——-检测签名是否正确
makecert.exe——制作数字证书
signcode.exe
================
2、流程
以上根据需要来确定采用哪些工具,这里我采用了makecert.exe 、cert2spc.exe来制作认证的证书,signcode.来进行数字签名。
进入DOS状态,进入上述工具所在目录,输入以下命令:
一、
makecert -sv test.pvk -n ”CN=test,E=test@test.com,O=test” test.cer
这个是制作证书, -sv是制作加密的文件,会给证书设定公钥和私钥(-sk则生成没有密钥的证书),CN是公司,E=EMail,O=认证公司的名称,test.cer是生成文件的名称。
二、然后运行:Cert2SPC test.cer test.spc 将cer证书转为spc证书。
这时制作的证书是没有任何认证公司认证的,通过认证的一年需要大约400美金。
三、创建INF文件
[Version]
signture=”$Title$”
AdvancedINF=2.5
[Add.Code]
Player.ocx = Player.ocx
avcodec.dll = avcodec.dll
avformat.dll = avformat.dll
avutil.dll = avutil.dll
H264Decoder.dll = H264Decoder.dll
NetLink.dll = NetLink.dll
[NetLink.dll]
file-win32-x86=thiscab
[avcodec.dll]
file-win32-x86=thiscab
[avformat.dll]
file-win32-x86=thiscab
[avutil.dll]
file-win32-x86=thiscab
[H264Decoder.dll]
file-win32-x86=thiscab
[Player.ocx]
file-win32-x86=thiscab
clsid={CD55E5EC-F555-5555-5555-555A55C55DC5}
RegisterServer=yes
FileVersion=1,0,0,2
其中大扩后中的类容对于dll文件来说若是不需要注册则可以省略。
四、使用cabarc.exe将ocx及所需dll文件和inf文件打包成CAB文件包
将所需的ocx和dll及inf文件放在同一个目录下,然后在dos下进入到该目录下,键入以下命令:
F:\Cabsdk\BIN\CABARC -s 6144 n CamView.CAB Player.ocx avcodec.dll avformat.dll avutil.dll H264Decoder.dll NetLink.dll Player.inf
注 意这里“F:\Cabsdk\BIN\”是cabarc.exe所在目录,CamView.CAB是要生成的CAB文 件,NetLink.dll avcodec.dll avformat.dll avutil.dll H264Decoder.dll Player.ocx Player.inf 是所需的文件,按重要顺序排列,inf文件放在最后。系统提示成功之后,会在ocx同目录下生成CamView.CAB文件。打包还可以使用其他工具,如 老毛桃cab打包等。
五、使用signcode.exe给OCX文件进行数字签名。(图形化界面操作)
双击signcode.exe后出现一个数字签名向导
下一步 选择需要签名的文件(CamView.cab)
下一步 这里选择了自定义
下一步 选择签名证书,从文件选择,选择刚才做好的test.spc
下一步 私钥,磁盘上的私钥文件,点浏览选择刚才做好的test.pvk
下一步 输入密码
下一步 选择算法,这里我选择的是sha1
下一步 默认
下一步 描述:输入安装证书时提示的文字,随便输入
下一步 时间 默认
下一步 完成
六、将CAb文件挂上服务器并修改网页中控件部分
<OBJECT id=CamViewer classid=”clsid:CD55E5EC-F555-5555-5555-555A55C55DC5″ CODEBASE=”CamView.CAB#version=1,0,0,2″height=500 width=645 hspace=0 vspace=0 VIEWASTEXT> </OBJECT>
其中CODEBASE=”这里填写CAB文件的路径,#version=1,0,0,2″是控件的版本号,要与ocx的版本号一致。
七、升级
只要在源代码中更改Player.ocx文件中对应的版本 号,并同时更改网页调用控件的版本号就可以了,下一次客户访问这个页面时会自动检测并提示安装新控件,新控件会覆盖旧版本的控件。
原文地址:http://hi.baidu.com/knowise/blog/item/81b666971e11db6154fb96fc.html
相关文章推荐
- Win10总是自动下载更新系统,该如何关闭?
- 安卓开发中,如何在代码中实现第三方推送更新,下载好更新后,自动卸载旧版本再安装,而不是直接覆盖安装
- Asp.Net 开发之(1) ---如何自动加载数据到页面或更新数据到数据容器中(基础控件)
- 如何用js控件div的滚动条,让它在内容更新时自动滚到底部?
- 如何用js控件div的滚动条,让它在内容更新时自动滚到底部?
- win8系统如何设置系统更新避免默认自动下载并安装更新
- C#中,datagridview与sql数据源绑定后,通过控件更改数据如何自动回写更新到数据源
- 如何实现控件随窗体大小的改变而自动适应其改变
- PB使用WININET的FTP方式自动更新(四、下载)
- WEBS上自动下载控件的实现方法
- 安卓自动更新,静默更新,替换友盟更新可以在通知栏里显示更新下载进度,几行代码快速实现Android下载更新
- Developer Express控件组合中的gridcontrol控件,如何自动显示每一列的序号?
- PPT控件Spire.Presentation更新至2.8.95 | 附下载
- 基于visual c++之windows核心编程代码分析(8)自动下载更新程序
- 如何制作自动更新程序?
- Android 版本更新下载自动安装APK,并解决Android6.0安装失败的问题
- 如何关闭Sublime Text 的自动更新
- Win8自动更新在哪如何让应用商店推送Win8.1升级信息
- 【更新】PPT控件Spire.Presentation V2.8.86发布 | 附下载
- Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)