Internet软件分发单位是“软件包”,它由包含.INF文件或软件分发.OSD文件(或两者都包括)的.CAB文件所组成。一个分发单位也可以包含软件组件,如 ActiveX 控件(.OCX)、.DLL文件、.EXE文件、Java类文件或小程序。当Web页上OBJECT元素的CODEBASE特性引用包含.INF文件的.CAB文件时,Internet Explorer 3.0或更新的版本将自动把.CAB文件作为软件分发单位下载并安装。
第一步:.INF文件的编写,以下是一个.INF的例子
第一步:.INF文件的编写,以下是一个.INF的例子
.INF文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如.DLL或者其它.OCX)。一个.INF文件就捆绑了.CAB压缩文件所有的必须文件。 缺省情况下,与现有硬盘中文件版本号相同的文件不被下载。下面就以一个webTest.dll为例子。在webTest.dll中使用到:web1.dll,web2.dll,web3.ocx
webTest.inf文件:
[
Add.Code
]
webTest.dll = webTest.dll
web1.dll = web1.dll
web2.dll = web2.dll
web3.ocx = web3.ocx
[ webTest.dll ]
file-win32-x86 = thiscab
clsid = {3848B779-EE83-4B97-94CF-FCA9AD927904}
FileVersion = 1 , 0 , 0 , 1
RegisterServer = yes
DestDir = 11
[ web1.dll ]
file-win32-x86 = thiscab
FileVersion = 1 , 0 , 0 , 1
RegisterServer = yes
DestDir = 11
[ web2.dll ]
file-win32-x86 = thiscab
FileVersion = 1 , 0 , 0 , 1
RegisterServer = yes
DestDir = 11
[ web3.ocx ]
file-win32-x86 = thiscab
FileVersion = 1 , 0 , 0 , 0
RegisterServer = yes
DestDir = 11
webTest.dll = webTest.dll
web1.dll = web1.dll
web2.dll = web2.dll
web3.ocx = web3.ocx
[ webTest.dll ]
file-win32-x86 = thiscab
clsid = {3848B779-EE83-4B97-94CF-FCA9AD927904}
FileVersion = 1 , 0 , 0 , 1
RegisterServer = yes
DestDir = 11
[ web1.dll ]
file-win32-x86 = thiscab
FileVersion = 1 , 0 , 0 , 1
RegisterServer = yes
DestDir = 11
[ web2.dll ]
file-win32-x86 = thiscab
FileVersion = 1 , 0 , 0 , 1
RegisterServer = yes
DestDir = 11
[ web3.ocx ]
file-win32-x86 = thiscab
FileVersion = 1 , 0 , 0 , 0
RegisterServer = yes
DestDir = 11
注意:FileVersion必须写成逗号分隔的形式。
DestDir=11代表是System或System32目录,下载的时候会自动判断使用哪个目录。
DestDir=11代表是System或System32目录,下载的时候会自动判断使用哪个目录。
第二步:开始制作.CAB文件,我是用IExpress工具制作的(该工具在winnt/system32目录下面)。
IExpress汉化补丁下载
1:选择“创建新的自解压指导文件。”,点击下一步。
2:选择“仅创建压缩文件(ActiveX安装)”,点击下一步。
3:点击添加,把你要供别人下载的文件添加(webTest.inf,webTest.dll,web1.dll,web2.dll,web3.ocx),点击下一步。
4:点击浏览,输入.CAB文件的存放地址(包含文件名,文件名可以随便起,这里我用的是WebTest.CAB),并且要选中下面的“在软件包中使用长文件名保存文件”。点击下一步。
5:选择“不保存”,一直点击下一步,直到完成。
1:选择“创建新的自解压指导文件。”,点击下一步。
2:选择“仅创建压缩文件(ActiveX安装)”,点击下一步。
3:点击添加,把你要供别人下载的文件添加(webTest.inf,webTest.dll,web1.dll,web2.dll,web3.ocx),点击下一步。
4:点击浏览,输入.CAB文件的存放地址(包含文件名,文件名可以随便起,这里我用的是WebTest.CAB),并且要选中下面的“在软件包中使用长文件名保存文件”。点击下一步。
5:选择“不保存”,一直点击下一步,直到完成。
现在在你的网页中使用该控件,当别人访问你的网页时,如果他的机子上没有你的控件,浏览器就会自动下载安装。因为你的控件可能没有获得签名,因此得将浏览器的安全级别降低。在internet工具中选择安全,选择自定义。找到下载未签名的ActiveX控件,选择其下面的提示或者启用。
第三步:在网页中插入控件代码
<
OBJECT
id
=WebTest
style
="width:0px;height:0px"
classid ="clsid:348CAD17-BAB5-49F5-B154-D6B8686F063B"
codebase ="WebTest.CAB#version=1,0,0,1" >
</ OBJECT >
classid ="clsid:348CAD17-BAB5-49F5-B154-D6B8686F063B"
codebase ="WebTest.CAB#version=1,0,0,1" >
</ OBJECT >
如果控件已经在客户机注册,并且不是通过.CAB的方式注册,那么通过.CAB自动注册的时候,该控件将无法被更新。必须先手动删除该文件。
注意:得把.CAB文件你和的网页放在同一目录下。或者在codebase中指定.CAB的路径。
其中的version必须也是逗号分隔的形式,否则无法自动升级更新。
其中的version必须也是逗号分隔的形式,否则无法自动升级更新。