免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
發(fā)布Activex - 組件控件開發(fā)
1、如果需要創(chuàng)建cab文件,首先需要Cabarc或者M(jìn)akecab,它們隨著Cabinet  SDK的安裝就有了,Cabinet SDK的下載地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp。  
Cabarc可以創(chuàng)建、查看或者解出cab里面的文件,而Makecab則只可以用來創(chuàng)建cab文件。  
2、制作cab文件時需要將所有的相關(guān)文件都包含進(jìn)去,可以通過Depends(VC自帶的)檢查需要的文件。使用inf文件將這些東西都寫進(jìn)去。  
3、inf搞法:inf文件描述cab中所有的ocx及dll文件,inf通過一些命名區(qū)域來提供需要的信息。  
 
怎么寫inf  
最開始一般是[Version]區(qū):  
eg:  [Version]  
       signature="$XXXX$"  
       AdvancedINF=2.0  
接下來就是最重要的[Add.Code]區(qū):  
eg:  [Add.Code]  
       Ctrl1.dll=C1Section  
       Ctrl2.dll=Ctrl2.dll  
前面是要下載的文件名,后面是對應(yīng)這個文件的區(qū)域名,可以是任何名字,不過一般都是和文件的名字相同,這樣方便維護(hù)。還有需要注意是在[Add.Code]區(qū)出現(xiàn)的文件要根據(jù)依賴性進(jìn)行排序,例如前面說的ctrl1.dll要依賴于ctrl2.dll,則ctrl2.dll要出現(xiàn)在ctrl1.dll的前面。因為安裝時是按照相反的順序進(jìn)行的,也就是說先安裝ctrl2.dll,然后才是ctrl1.dll,哧哧,記清楚了,不要搞反了。  
再接下來是各個文件的區(qū)域了  
[Ctrl1.dll]  
file-win32-x86=thiscab  
RegisterServer=yes  
clsid={.....}  
DestDir=    
FileVersion=1,0,0,0  
[Ctrl1.dll]區(qū)域中的第一個file值告訴ie到哪里去得到這個dll,file一共包括三個部分,第一部分是file,這個永遠(yuǎn)都是這樣的(至少目前來說);第二部分告訴聲明支持的OS,win32表示windows,mac就是蘋果MAC  OX了;第三部分是CPU類型,比如說x86、  ppc (Power  PC)、  mips或者alpha了。  
file的值可以取三個一個URL、ignore和thiscab,如果是URL則說明到URL所在的位置去下;如果是ignore說明對于這種OS和CPU,不需要下載這個文件(ctrl1.dll);如果是thiscab很明顯就在當(dāng)前的cab文件中了。  
接下來是RegisterServer,可以取兩個值yes和no,如果為yes則說明ie要注冊該dll,如果是no就不必了;  
再下來是DestDir,它的值是dll將要存到本地硬盤的位置,如果它的值是10,則將dll放到\Windows或者\WinNT下;如果是11,則放到\Windows\System或者  
\WinNT\System32下;如果是空(就是沒有值)則會放到\Windows或者\WinNT下的Downloaded  Program  Files目錄下;  
最后是FileVersion,這個就比較明顯了,說明了ctrl1.dll的版本號。  
有時候我們使用VB來開發(fā)控件的時候,需要將VB的虛擬機(jī)裝上去,它需要一些其它的說明的,簡單地講一下吧:  
在[Add.Code]中增加一項MSVBVM60.DLL=MSVBVM60.DLL(以VB6為例)下面是  
MSVBVM60.DLL區(qū)域:  
[MSVBVM60.DLL]  
           hook=MSVBVM60.cab_Installer  
           FileVersion=6,0,81,76  
FileVersion很明顯,是版本號,就不再說發(fā),就說說hook吧。  
hook區(qū)域是在安裝的時候需要執(zhí)行的區(qū)域,它分為兩種,一種是有條件的,另外一種是無條件的,無條件的hook區(qū)域是必須執(zhí)行的,反之則根據(jù)條件判斷是否執(zhí)行。以[Setup  Hooks]標(biāo)記的區(qū)域是無條件區(qū)域,如下所示  
[Setup  Hooks]  
       hookname=section-name  
 
[section-name]  
run=%EXTRACT_DIR%\setup.exe  
無條件區(qū)域常用來通過一個inf文件執(zhí)行一個安裝程序,這就是我們在資源管理器右鍵點擊一個inf文件時在執(zhí)行安裝這樣的菜單的原因了  
當(dāng)ie下載了一個cab文件,如果文件中沒有[Add.Code],則處理[Setup  Hooks]區(qū)域,運行run所指定程序,哧哧,上面就是setup.exe;  
條件區(qū)域則為在一定條件下執(zhí)行,前面為MSVBVM60.DLL指定的hook區(qū)域就是一個條件區(qū)域,如果在MSVBVM60.DLL指定的CLSID或者version不能滿足需要而且沒有file這個命名值,則執(zhí)行hook所指定的區(qū)域。  
[MSVBVM60.cab_Installer]  
file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cab  
run=%EXTRACT_DIR%\VBRun60.exe  
上面[MSVBVM60.cab_Installer]是一個hook區(qū)域,它也包含了一個file值,指定一個URL,表示MSVBVM60.DLL可以從這個URL下載得到;run則說明了執(zhí)行哪一個文件  
這里有必要說明一下的是,MS對一些常用的Redistributable  Microsoft  DLLs  
可以通過指定CODEBASE屬性為http://activex.microsoft.com/controls,這樣在cab文件中就中需要包含這些文件,在計算機(jī)上有一個文件redist.txt上面的dll就是Redistributable  Microsoft  DLLs  
 
 
創(chuàng)建一個cab文件:  
cabarc  N  ctrl1.cab  ctrl1.inf  ctrl1.dll  
N表示要創(chuàng)建一個新的文件,ctrl1.cab是創(chuàng)建的文件名,ctrl1.inf是cab的inf,后而是需要加到cab里的文件,可以使用通配符。  
然后就可以將cab文件放到網(wǎng)頁上了  
<OBJECT  ID="Ctrl1Obj"  
               CLASSID="clsid:....................................."  
               CODEBASE="http://server.com/ctrl1.cab#version=8,0,0,5007">  
</OBJECT>  
這里也在一個version,不過這里的version是指控件的version,而inf里的是文件的version。  
 
 
制作電子簽名:  
首先從下面的網(wǎng)址下載制作簽名的工具SignCode,地址是  
http://msdn.microsoft.com/workshop/gallery/tools/authenticode/authcode.asp  
從簽名授權(quán)中心如VeriSign或者你的局域網(wǎng)上運行的Microsoft  Certificate    
Server授權(quán)服務(wù)器得到一個certificate,在申請授權(quán)的過程你會得到一個私鑰。  
也可以使用MakeCert.exe和Cert2Spc.exe創(chuàng)建的私鑰進(jìn)行測試,方法是首先使用MakeCert創(chuàng)建一個X.509的certificate(.cer文件)  
       MakeCert  -sv  MyKey.pvk  n  "CN=My  Software  Company"  MyCert.cer  
然后利用Cert2Spc將.cer文件轉(zhuǎn)換成為PKCS  #7軟件發(fā)布Certificate(.spc文件),  
       Cert2Spc  MyCert.cer  MyCert.spc  
利用你下載的SignCode對你的cab文件進(jìn)行電子簽名  
       SignCode  -spc  MyCert.spc  -v  MyKey.pvk  -t  http://  
               timestamp.verisign.com/scripts/timstamp.dll  ctrl1.cab  
SignCode還可以指定一些其它的參數(shù),就不說了,太長了,哧哧。  
雖然可以利用測試的.cer和.spc文件,但是在發(fā)布的時候,必須申請。  
 
其實東西在SDK中都有說明,不過都是E文的,慢慢看.
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Web發(fā)布cab文件打包的ActiveX控件總結(jié)
cab文件打包的ActiveX控件
如何發(fā)布ActiveX 控件
C#制作、打包、簽名、發(fā)布Activex全過程
如何打包你的VB軟件(一)
無法啟動此程序,因為計算機(jī)中丟失msvbvm50.dll
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服