從頁面上下載控件時(shí)制作CAB包的方法
發(fā)表時(shí)間:2024-01-23 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Internet 軟件分發(fā)單位是“軟件包”,它由包含 .inf 文件或軟件分發(fā) (.osd) 文件(或兩者都包括)的 CAB 文件 (.cab) 所組成。一個(gè)分發(fā)單位也可以包含軟件組件,如 ActiveX 控件 (.ocx)、.dll 文件、.exe 文件、Java 類文件或小程序。當(dāng) Web 頁...
Internet 軟件分發(fā)單位是“軟件包”,它由包含 .inf 文件或軟件分發(fā) (.osd) 文件(或兩者都包括)的 CAB 文件 (.cab) 所組成。一個(gè)分發(fā)單位也可以包含軟件組件,如 ActiveX 控件 (.ocx)、.dll 文件、.exe 文件、Java 類文件或小程序。當(dāng) Web 頁上 OBJECT 元素的 CODEBASE 特性引用包含.inf 文件的 CAB 文件時(shí),Internet Explorer 3.0 和更新的版本將自動(dòng)把 CAB 文件作為軟件分發(fā)單位。
第一步:創(chuàng)建一個(gè)inf文件:
INF文件是一個(gè)文本文件,指定運(yùn)行控件所需要下載或者呈交的文件(比如DLL或者其它OCX)。
一個(gè)INF文件就捆綁了CAB壓縮文件所有的必須文件。 缺省情況下,
與現(xiàn)有硬盤中文件版本號(hào)相同的文件不被下載。
要了解有關(guān)INF文件及其選項(xiàng)(包括如何創(chuàng)建獨(dú)立于平臺(tái)的INF文件)的詳細(xì)情況,
請(qǐng)參考平臺(tái)軟件開發(fā)工具包(Platform SDK,)的設(shè)置和系統(tǒng)管理服務(wù)(Setup and System Management Services)
部分的\Setup API\Overview\INF Files目錄下的內(nèi)容。
下面就以我自己寫的一個(gè)videoweb.dll為例子。在videoweb.dll中使用到:tdiio.dll,encoder.dll,decoder.dll,tdiio.ini,user.ini,
camer.ini,drivo.ini.
video.inf的例子:
;inf file for videoweb.dll
[version]
signature=$CHICAGO$
[DestinationDirs]
DLLSysCopy=11
IniWinCopy=25
[DefaultInstall]
CopyFiles=DllSysCopy,IniWinCopy
AddReg=videoReg
[DllSysCopy]
tdiio.dll
Decoder.dll
VideoWeb.dll
[IniWinCopy]
camer.ini
user.ini
xvidMP4.ini
[videoReg]
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC},"",%REG_SZ%,"Video Class"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Control
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\InprocServer32,"", %REG_SZ%,"%11%\VideoWeb.dll"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\InprocServer32,"ThreadingModel",%REG-SZ%,"Apartment"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\MiscStatus,"",%REG_SZ%,"0"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\MiscStatus\1,"",%REG_SZ%,"131473"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\ProgID,"",%REG_SZ%,"VideoWeb.1.1"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Programmable
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\ToolboxBitmap32,"",%REG_SZ%,"%11%\VideoWeb.dll,102"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\TypeLib,"",%REG_SZ%,"{FC4352CB-BB55-498C-BB21-E4BAE2FC2584}"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Version,"",%REG_SZ%,"1.0"
HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\VersionIndependentProgID,"",%REG_SZ%,"VideoWeb.1"
;end of INF file
DestinationDirs:指的是裝載目錄或者文件的地址: 11 指定為系統(tǒng)目錄 WINDOWS/SYSTEM 或者 WINNT/SYSTEM32;
10 規(guī)定為窗口目錄、WINDOWS或者WINNT。
videoReg:如果是自己寫的控件:可以在本地先用regsvr32 xxx.dll注冊(cè)后,從注冊(cè)表中找到上面的注冊(cè)信息。
當(dāng)然以上僅僅是在internet上分發(fā)軟件時(shí)一個(gè)很簡(jiǎn)單的inf文件,還有更復(fù)雜的inf文件。請(qǐng)看SDK。
第二步:把video.inf,tdiio.dll,encoder.dll,decoder.dll,tdiio.ini,user.ini,
camer.ini,drivo.ini.放在一個(gè)文件夾中。
第三步:開始制作cab文件,我是用IExpress工具制作的(該工具在winnt\system32目錄下面)。
1:選擇創(chuàng)建新的自解壓指令文件。
2:選擇僅創(chuàng)建壓縮文件(ActiveX安裝)
3:點(diǎn)擊添加把你要供別人下載的文件添加
4:點(diǎn)擊瀏覽 輸入*.cab文件的存放地址(包含文件名)
5:就隨便了
好了制作完成。
現(xiàn)在在你的網(wǎng)頁中使用該控件,當(dāng)別人訪問你的網(wǎng)頁時(shí),如果他的機(jī)子上沒有你的控件,瀏覽器就會(huì)自動(dòng)下載安裝。因?yàn)槟愕目丶赡軟]有獲得簽名
因此得在你的瀏覽器中把瀏覽器的安全級(jí)別降低。在internet 工具中選擇安全,選擇自定義。找到下載未簽名的ActiveX控件。選擇其下面的提示或者啟用。
在網(wǎng)頁中插入:
<OBJECT classid=clsid:4BDA0AA3-2164-44B7-8A88-208A145F51DC
codebase="video.cab#version=2,0,0,1"
id=Video1 style="HEIGHT: 507px; WIDTH: 718px"></OBJECT>
該句.
注意:得把*.cab 文件你和的網(wǎng)頁放在同一目錄下。或者在codebase中指定*.cab的路徑。