ocx插件插入网页实现自动更新与安装注册

ocx插件插入网页实现自动更新与安装注册

(2010-03-24 19:44:17)
<script></script>标签:

杂谈

1.将ocx文件以及第三方dll文件打包成cab文件:制作工具:iexpress.exe 和makecab.exe (请注意:如果您开发的ActiveX为IE加载项,请先数字签名每个CAB文件中的.dll和.ocx等文件,再把这些文件打包成.cab文件后再数字签名.cab文件,以确保所有IE加载项都被IE验证和信任,否则会显示“未验证”而可能影响正常运行。)

Internet 软件分发单位是“软件包”,它由包含.INF文件或软件分发.OSD文件(或两者都包括)的.CAB文件所组成。

一个分发单位也可以包含软件组件,

如 ActiveX 控件(.OCX)、.DLL文件、.EXE文件、Java类文件或小程序。当Web页上OBJECT元素的CODEBASE特性引用包含.INF文件的.

CAB文件时,Internet Explorer将自动把.CAB文件作为软件分发单位下载并安装,每次访问时还会自动检测版本并进行更新。

INF文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如.DLL或者其它.OCX)。一个.INF文件就捆绑了.

CAB压缩文件所有的必须文件。 缺省情况下,与现有硬盘中文件版本号相同的文件不被下载。

先自己写了一个inf文件,其中信息包括将.ocx文件,以及相关的.dll文件打包,并下载到文件夹:\WINDOWS\system32,详细标注如下:

[version]   

signature="$CHICAGO$"

AdvancedINF=2.0

[Add.Code]

pcpos.ocx=pcpos.ocx

Comm.dll=comm.dll

[pcpos.ocx]

file-win32-x86=thiscab   

RegisterServer=yes   

clsid={719A1D6E-7099-4123-9D63-F0118AFF2D61}   

DestDir=11   

FileVersion=1,0,0,1

[Comm.dll]

file-win32-x86=thiscab   

RegisterServer=yes                        

DestDir=11   

FileVersion=1,0,0,1

[RegisterFiles]   

%11%\pcpos.ocx

注释:

"thiscab" 是一个关键字,意指包含该INF的CAB文件。也可以从网上下载所需要的DLL文件,只要指定一个HTTP 网址即可,如:

file-win32-x86=http://www.mysite.com/mydir/NEEDED.DLL

关键字"file-win32-x86" 指定平台是 x86。

文件版本号可见属性。

"DestDir"指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/ /SYSTEM32;

"clsid" 指的是要安装控件的CLSID。

制作cab:

使用\WINDOWS\system32\iexpress.exe。

1)        选择“Create new Self Extraction Directive file”,点击下一步。

2)        选择“Create compressed files only(ActiveX Installs)”,点击下一步。

3)        点击Add,文件添加(pcpos.ocx,pcpos.dll,comm.dll,tcpclnt.dll),点击下一步。

4)        点击Browse,输入.CAB文件的存放地址(包含所取文件名),这里取TestCAB.CAB,并且要选中 “Store files using Long File Name inside Package”。点击下一步。

5)        选择“Don’t save”,一直点击下一步,直到完成。

注意:

如果控件已经在客户机注册,并且不是通过.CAB的方式注册,那么通过.CAB自动注册的时候,该控件将无法被更新。必须先手动删除该文件。

2. 对文件进行数字签名  Signcode.exe ---文件签名工具


如何进行代码签名?




如果是对需要从网上自动下载安装的ActiveX控件进行签名,必须在ActiveX控件的程序代码中实现“初始化安全”和“脚本安全”两个接口,具体方法可查阅COM有关资料。




ActiveX控件能否自动下载与“代码签名证书”的有效期有关,当“代码签名证书”失效后,ActiveX控件不能继续下载,但已经下载的ActiveX控件仍然可以继续有效使用,因此,用户应当根据需要确定代码签名证书的有效期(企业证书可以支持最长10年的有效期)。




首先从中国数字认证网申请“代码签名证书”。http://www.ca365.com/参考如何在用户的客户机上自动安装根证书?




下载代码签名工具“signcode.exe”。




运行“signcode.exe”,选择要签名的文件,鼠标单击“下一步”。







ocx插件插入网页实现自动更新与安装注册






鼠标单击“从存储区选择”按钮。




ocx插件插入网页实现自动更新与安装注册




选择数字证书,鼠标单击“确定”按钮,按向导提示进行。




ocx插件插入网页实现自动更新与安装注册




如果需要添加时间戳,在“时间戳服务 URL”编辑框中填:“http://timestamp.verisign.com/scripts/timstamp.dll”。




ocx插件插入网页实现自动更新与安装注册




向导提示进行。


3.在网页中使用
<OBJECT classid=clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1 codebase="xenrlinf.cab#Version=5,131,3659,0" id=XEnroll name=XEnroll VIEWASTEXT></OBJECT>
主要classid和版本号要写对

你可能感兴趣的:(Web,windows,IE,脚本)