從網頁上下載控制項時製作CAB包的方法

來源:互聯網
上載者:User
控制項|網頁|下載|下載控制項 Internet 軟體分發單位是“軟體包”,它由包含 .inf 檔案或軟體分發 (.osd) 檔案(或兩者都包括)的 CAB 檔案 (.cab) 所組成。一個分發單位也可以包含軟體組件,如 ActiveX 控制項 (.ocx)、.DLL 檔案、.exe 檔、Java 類檔案或小程式。當 Web 頁上 OBJECT 元素的 CODEBASE 特性引用包含.inf 檔案的 CAB 檔案時,Internet Explorer 3.0 和更新的版本將自動把 CAB 檔案作為軟體分發單位。
第一步:建立一個inf檔案:
INF檔案是一個文字檔,指定運行控制項所需要下載或者呈交的檔案(比如DLL或者其它OCX)。
一個INF檔案就捆綁了CAB壓縮檔所有的必須檔案。 預設情況下,
與現有硬碟中檔案版本號碼相同的檔案不被下載。
要瞭解有關INF檔案及其選項(包括如何建立獨立於平台的INF檔案)的詳細情況,
請參考平台軟體開發套件(Platform SDK,)的設定和系統管理服務(Setup and System Management Services)
部分的\Setup API\Overview\INF Files目錄下的內容。
下面就以我自己寫的一個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 指定為系統目錄 WINDOWS/SYSTEM 或者 WINNT/SYSTEM32;
10 規定為視窗目錄、WINDOWS或者WINNT。
videoReg:如果是自己寫的控制項:可以在本地先用regsvr32 xxx.dll註冊後,從註冊表中找到上面的註冊資訊。
當然以上僅僅是在internet上分發軟體時一個很簡單的inf檔案,還有更複雜的inf檔案。請看SDK。

第二步:把video.inf, tdiio.dll,encoder.dll,decoder.dll,tdiio.ini,user.ini,
camer.ini,drivo.ini.放在一個檔案夾中。
第三步:開始製作cab檔案,我是用IExpress工具製作的(該工具在winnt\system32目錄下面)。
1:選擇建立新的自解壓指令檔案。
2:選擇僅建立壓縮檔(ActiveX安裝)
3:點擊添加把你要供別人下載的檔案添加
4:點擊瀏覽 輸入*.cab檔案的存放地址(包含檔案名稱)
5:就隨便了
好了製作完成。
現在在你的網頁中使用該控制項,當別人訪問你的網頁時,如果他的機子上沒有你的控制項,瀏覽器就會自動下載安裝。因為你的控制項可能沒有獲得簽名
因此得在你的瀏覽器中把瀏覽器的安全層級降低。在internet 工具中選擇安全,選擇自訂。找到下載未簽名的ActiveX控制項。選擇其下面的提示或者啟用。
在網頁中插入:
<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 檔案你和的網頁放在同一目錄下。或者在codebase中指定*.cab的路徑。




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。