• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            面對現(xiàn)實(shí),超越自己
            逆水行舟,不進(jìn)則退
            posts - 269,comments - 32,trackbacks - 0

            我們打開淘寶等網(wǎng)站時,IE瀏覽器會提示安裝空間,這個控件便是用于對用戶名密碼進(jìn)行加密的ActiveX控件。如何在我們的站點(diǎn)上安裝如此控件,讓用戶可以通過簡單的點(diǎn)擊便可方便使用我們的空間呢?

            下面是如何讓在你的站點(diǎn)上安裝控件的方法。


             基礎(chǔ)知識

            html語言中Object標(biāo)簽

            定義和用法

            定義一個嵌入的對象。請使用此元素向您的 XHTML 頁面添加多媒體。此元素允許您規(guī)定插入 HTML 文檔中的對象的數(shù)據(jù)和參數(shù),以及可用來顯示和操作數(shù)據(jù)的代碼。<object> 標(biāo)簽用于包含對象,比如圖像、音頻、視頻、Java applets、ActiveX、PDF 以及 Flash。object 的初衷是取代 img 和 applet 元素。不過由于漏洞以及缺乏瀏覽器支持,這一點(diǎn)并未實(shí)現(xiàn)。瀏覽器的對象支持有賴于對象類型。不幸的是,主流瀏覽器都使用不同的代碼來加載相同的對象類型。而幸運(yùn)的是,object 對象提供了解決方案。如果未顯示 object 元素,就會執(zhí)行位于 <object> 和 </object> 之間的代碼。通過這種方式,我們能夠嵌套多個 object 元素(每個對應(yīng)一個瀏覽器)。

            實(shí)例

            向HTML中添加對象:

            1 <object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1"   
            2 width="100" height="50">  
            3   <param name="BorderStyle" value="1" />  
            4   <param name="MousePointer" value="0" />  
            5   <param name="Enabled" value="1" />  
            6   <param name="Min" value="0" />  
            7   <param name="Max" value="10" />  
            8 </object>  

             

            參考

            http://www.w3school.com.cn/tags/tag_object.asp

            Windows中注冊類ID:clsid

            “通用唯一標(biāo)識符”(UUID),用于標(biāo)識 COM 組件。每個 COM 組件在 Windows 注冊表中都有自己的 CLSID,以便讓其他應(yīng)用程序加載。

            ActiveX控件CLSID的獲取

            在編譯完成每一個ActiveX控件之后,系統(tǒng)會生成ocx.html文件,其中是調(diào)用該ActiveX控件的方法。該頁面中有一個標(biāo)簽即為Object,其中有一行則記錄著該ocx文件的CLSID,如下:

            1 <object  
            2  ID="TopoSceneViewer"    
            3  WIDTH=800  
            4  HEIGHT=600  
            5  CLASSID="CLSID:321B84C8-3745-4AC9-BF04-55753F40CE63">   
            6 </object> 

             


            創(chuàng)建cab文件

            cab文件中需要包含一系列文件,其中.inf文件會告訴IE如何去安裝這些文件。我們從.inf文件開始

            怎么寫inf

            INF文件的組成有節(jié)(Sections),鍵(Key)和值(value)三部分。 
            關(guān)鍵節(jié)有 
            1 [Version]版本描述信息,主要用于版本控制。   
            2 [Strings]字符串信息,用于常量定義。   
            3 [DestinationDirs]定義系統(tǒng)路徑信息。   
            4 [SourceDisksNames]指明源盤信息。   
            5 [SourceDisksNames]指明源盤文件名。   
            6 [DefaultInstall]開始執(zhí)行安裝。

            其它的節(jié)可以自定義

            最開始一般是[Version]區(qū): 

            1 [Version]    
            2 signature="$XXXX$"    
            3 AdvancedINF=2.0  

             

            "Signature"項定義了該INF文件需要運(yùn)行在何種操作系統(tǒng)版本中。有$Windows NT$, $Chicago$, or $Windows 95$三個值供選擇,一般選擇$Chicago$即可。

            接下來就是最重要的[Add.Code]區(qū): 

            1 [Add.Code]    
            2 Ctrl1.dll=C1Section    
            3 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的前面。因?yàn)榘惭b時是按照相反的順序進(jìn)行的,也就是說先安裝ctrl2.dll,然后才是ctrl1.dll,哧哧,記清楚了,不要搞反了。

            再接下來是各個文件的區(qū)域了 

            1 [Ctrl1.dll]    
            2 file-win32-x86=thiscab    
            3 RegisterServer=yes    
            4 clsid={..}    
            5 DestDir=      
            6 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就不必了。+如果這里選yes,則需要指定clsid,否則clsid一行可以省略。+

            再下來是DestDir,它的值是dll將要存到本地硬盤的位置,如果它的值是10,則將dll放到/Windows或者/WinNT下;如果是11,則放到/Windows/System或者/WinNT/System32下;如果是空(就是沒有值)則會放到/Windows或者/WinNT下的Downloaded Program Files目錄下;

            最后是FileVersion,這個就比較明顯了,說明了ctrl1.dll的版本號。

            其他部分詳見參考文獻(xiàn)。

            創(chuàng)建cab文件

            1. 如果需要創(chuàng)建cab文件,首先需要Cabarc或者M(jìn)akecab,它們隨著Cabinet SDK的安裝就有了,Cabinet SDK的下載地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp
            2. Cabarc可以創(chuàng)建、查看或者解出cab里面的文件,而Makecab則只可以用來創(chuàng)建cab文件。
            3. 制作cab文件時需要將所有的相關(guān)文件都包含進(jìn)去,可以通過Depends(VC自帶的)檢查需要的文件。使用inf文件將這些東西都寫進(jìn)去。
            4. inf搞法:inf文件描述cab中所有的ocx及dll文件,inf通過一些命名區(qū)域來提供需要的信息。
              cabarc  N  ctrl1.cab  ctrl1.inf  ctrl1.dll  
              N表示要創(chuàng)建一個新的文件,ctrl1.cab是創(chuàng)建的文件名,ctrl1.inf是cab的inf,后而是需要加到cab里的文件,可以使用通配符。 
              然后就可以將cab文件放到網(wǎng)頁上了

            參考

            1. 如何編寫INF:http://www.cnblogs.com/sbdx/archive/2006/12/14/whatisinffile.html
            2. 如何寫cab相關(guān)的INF:http://docs.google.com/Doc?docid=0Aehzv88zbfy_ZGdncGdqczZfMjIxZHNnZDhtYzg&hl=zh_CN

            簽名

            申請證書

            要使用到makecert工具,在VS2005目錄下搜索可以搜索到。

            在命令提示行中執(zhí)行

            1 makecert -sk myNewKey --"CN=發(fā)證機(jī)關(guān)的名字,OU=Certification,O=公司名字,E=name@email.com" -ss my myNew.cer  
            2 cert2spc myNew.cer myNew.spc  

            makecert具體使用幫助可參考創(chuàng)建證書的工具(makecert.exe)

            簽名

            要使用到signtool工具,也可以在VS2005目錄下找到。

            signtool工具有多種使用模式,下面使用的是帶UI的向?qū)J健?br />在命令提示行中執(zhí)行

            1 signtool  signwizard  

            之后進(jìn)入signcodewizard:

            1 step1.選擇要簽名的cab文件  
            2 step2.自定義  
            3 step3.從文件中選擇 myNew.spc  
            4 step4.csp中的私鑰/密鑰容器:myNewKey  
            5 step5.sha1  
            6 step6.next  
            7 step7.描述:插件名稱/web:www.yourcompany.com  
            8 step8.http://timestamp.verisign.com/scripts/timstamp.dll

            signtool 的具體使用幫助可參考簽名工具 (SignTool.exe)

            本文轉(zhuǎn)自:http://blog.csdn.net/wangjingfei/article/details/5417028
            其他
            鏈接:http://www.cnblogs.com/rushoooooo/archive/2011/06/22/2087542.html

            posted on 2013-09-05 10:05 王海光 閱讀(716) 評論(0)  編輯 收藏 引用 所屬分類: 工具
            久久久九九有精品国产| 国产麻豆精品久久一二三| 伊人久久大香线蕉综合网站| 精品久久久久久无码不卡| 久久久久亚洲AV无码麻豆| 99久久www免费人成精品| 色妞色综合久久夜夜| 久久99国产精品一区二区| 亚洲精品NV久久久久久久久久| 国内精品久久人妻互换 | 亚洲精品国产自在久久| 一本久久知道综合久久| 欧美激情精品久久久久| 97视频久久久| 亚洲国产日韩欧美综合久久| 国产∨亚洲V天堂无码久久久| 精品久久人人做人人爽综合| 久久国产精品99精品国产| 99久久做夜夜爱天天做精品| 国产—久久香蕉国产线看观看| 久久国产高潮流白浆免费观看| 香蕉aa三级久久毛片| 国产福利电影一区二区三区久久老子无码午夜伦不 | 亚洲日本va中文字幕久久| 久久免费国产精品| 国产精品va久久久久久久| 精品国产VA久久久久久久冰| 久久国内免费视频| 久久频这里精品99香蕉久| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久久WWW成人免费毛片| 久久av无码专区亚洲av桃花岛| 亚洲精品无码久久毛片 | 天天爽天天狠久久久综合麻豆| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久有码中文字幕| 性做久久久久久久久| 成人精品一区二区久久久| 国产精品内射久久久久欢欢| 精品国产婷婷久久久| 精品久久久久久无码人妻蜜桃|