Activex打包於發佈完整版---ActiveX打包

前面介紹了數字證書的原理與製作:http://blog.csdn.net/jiangtongcn/article/details/13508365,下面來看一下ActiveX組件的打包。

我現在有一個ActiveX組件:fq.ocx,目的用於採集當前登錄的QQ號碼,採用vc mfc編寫,當然您完全可以用其它技術編寫。本ActiveX需要嵌入在網頁中運行。

網上的關於打包這方面的東西太多了。這裏我整理一下微笑

一、編寫用於安裝cab包的inf文件

格式如下:

[version]    
signature="$CHICAGO$"   
AdvancedINF=2.0   
   
[Add.Code]    
XXXA.dll=XXXA.dll    
atl90.dll=atl90.dll        
   
[atl90.dll]
file-win32-x86=thiscab  
//告訴ie到哪裏去得到這個dll,file一共包括三個部分,第一部分是file,這個永遠都是這樣的(至少目前來說);第二部分告訴聲明支持的OS,win32表示windows,mac就是蘋果MAC  OX了;第三部分是CPU類型,比如說x86、  ppc  (Power  PC)、  mips或者alpha了
//其中“thiscab”是一個關鍵字,表示 CAB 包含此 DLL,也可通過指定一條絕對或相對路徑,從一個 HTTP 位置下載所需的 DLL,
例如:  file-win32-x86=http://www.mysite.com/mydir/NEEDED.DLL
FileVersion=9,00,30729,01
//說明了atl90.dll的版本號
DestDir=11
//它的值是dll將要存到本地硬盤的位置,如果它的值是10,則將dll放到/Windows或者/WinNT下;如果是11,則放到/Windows/System或者/WinNT/System32下;如果未指定任何 DestDir(典型情況),則代碼安裝在固定的 OCCACHE 目錄中。
RegisterServer=yes


[Polygon.dll]    
file-win32-x86=thiscab   
clsid={2885EE05-A26B-11D1-B49B-00C04F98EFE0}    
//“clsid”是將要安裝的控件的 CLSID
FileVersion=1,0,0,1 
RegisterServer=yes    


我的配置如下:

[version]
signature="$CHICAGO$"
AdvancedINF=2.0


[Add.Code]
fq.ocx=fq.ocx


[fq.ocx]
file-win32-x86=thiscab
clsid={7734961F-2127-4645-A17A-618D912AA868}
FileVersion=1,0,0,1
RegisterServer=yes
DestDir=11


二、創建CAB文件

cabarc -s 6144 n fq.cab fq.inf fq.ocx

說明:

  -s 6144:Reserve space in cabinet for signing (e.g. -s 6144 reserves 6K bytes) 在壓縮文件中保留用於代碼簽名的空間

 n:         Create new cabinet (e.g. cabarc n test.cab *.c app.mak *.h) 指定希望創建 CAB 文件

三、簽名CAB文件

1、雙擊signcode.exe文件:


2、點擊下一步選擇被簽名的CAB文件:


3、點擊下一步,選擇想要的簽名類型爲”自定義“:


4、點擊下一步,選擇”簽名證書“,選擇”從文件中選擇“


5、點擊下一步,選擇私鑰,選擇”磁盤上的私鑰文件“:


6、下一步輸入私鑰密碼:


7、下一步選擇散列算法,我選擇sha1:


8、下一步使用默認選擇即可,直接下一步:


9、接下來在彈出的"數據描述"窗口中輸入公司的名稱和網址並單擊"下一步(N)"按鈕(可以不輸入)


10、現大部份工作都已完成,在接下來的一步當中是可選的操作,其作用只是爲CAB加入時間戳,此步驟完全可以不做

VeriSign:  http://timestamp.verisign.com/scripts/timstamp.dll


11、到此,CAB文件的數字簽名工作已經完成

四、在html頁面中嵌入ActiveX:

<OBJECT ID="Fq1" WIDTH=800 HEIGHT=600
 CLASSID="CLSID:7734961F-2127-4645-A17A-618D912AA868" CODEBASE="fq.cab" style="border:1px none white;">
    <PARAM NAME="_Version" VALUE="65536">
    <PARAM NAME="_ExtentX" VALUE="2646">
    <PARAM NAME="_ExtentY" VALUE="1323">
    <PARAM NAME="_StockProps" VALUE="0">
    <PARAM NAME="Interval" VALUE="3000">
</OBJECT>
CODEBASE 也可以直接指向 OCX 或 DLL 文件,如:  
CODEBASE="http://lhsoft.net/mydir/fq.ocx#version=1,0,0,1"

以上步驟,如果您不會你可以手工註冊ActiveX組件,然後採用”Microsoft ActiveX Control Pad“工具完成:

命令行註冊ActiveX組件:regsvr32 fq.ocx

命令行取消註冊ActiveX組件:regsvr32 /u fq.ocx

”Microsoft ActiveX Control Pad“可以幫您生成自動生成頁面:


選擇”Edit->Insert ActiveX Control...“:


選擇您註冊的控件名稱:


隨後彈出的界面幫助您完成ActiveX組件屬性的設置:


關閉這些窗口,頁面腳本出來了:


後面的我不說了,該修改的改改吧。

五、使您的產品的使用者(客戶)下載和安裝您製作的證書

您需要編寫一個exe文件或者像我這樣準備三個文件:


install_cer.bat是批處理文件調用certmgr.exe完成證書的安裝,fq.cer就是要安裝的證書,install_cer.bat內容如下:

certmgr /c /add fq.cer /s root


至此,全部完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章