<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大魚

    ActiveX控件打包成Cab置于網頁中自動下載安裝

    [背景]
           做過ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的網頁上使用,那么用戶在客戶端就必須進行本地的注冊,也就是說用戶得首先要把該ActiveX控件(test.ocx)放在本機的%system%/system32下,然后運行DOS工具里面運行regsvr32 test.ocx命令進行注冊。但如果真是這么去做的話,那么代表著你處于危險之中了,因為您是通過讓用戶自己去部署設置環境來達到你的目的,這就失去軟件項目本身所存在的價值。那么面對這種情況,我們應該如何解決呢?聰明的你一定會很快就想到,我們可以使用戶在客戶端自動下載安裝該ActiveX控件,這樣一來即可以實現我們所想要的功能,又不需要用戶自己去部署設置環境,這豈不是一舉兩得。
    [必備條件]
    一、用于將ActiveX控件進行打包并加數據鑒名的工具集:
    makecert.exe 制作cer格式的證書,即X.509證書,同時可以創建私鑰和公鑰。
    cert2spc.exe  將cer格式證書轉換成spc格式證書,即PKCS #7證書。
    cabarc.exe   將ocx打包成cab。
    signcode.exe 將證書簽署到ocx上去。
    chktrust.exe  檢查簽署證書后的ocx是否正確。
    certmgr.exe 是管理證書用的。
     
    二、用于進行打包用的ocx控件evS1300.ocx。
    三、用于查看ocx控件的工具ActvxDoc。
    [制作過程]
    一、環境設置
    1、下載makeCAB包,解壓到本地目錄(如E盤根目錄),如查看到如圖1所示的工具集,則表示已下載成功:
     


    2、設置系統環境變量,右鍵單擊“我的電腦”à選擇“屬性”à選擇“高級”選項卡,打開如圖2所示的系統屬性面版塊:

     

    3、在系統屬性版塊里單擊“環境變量(N)”按鈕,打開圖3:

     

    4、選擇“系統變量(S)”里的“新建(W)”按鈕,打開“編輯系統變量”對話框,如圖4所示,然后在“變量值(V)”里加入“;E\makeCAB”:

    二、將用于打包的OCX控件放在E盤根目錄下(本文檔使用名為evS1300.ocx的控件來進行介紹),如圖5所示,其中evS1300.ocx是本文檔進行操作的控件對象,而mfc71.dll、msvcp71.dll、msvcr71.dll這三個文件通常是進行打包時一并打包的文件,但不是必須(推薦一起打包),其可在系統中的system32目錄下找到,請自行準備。

     

    三、ActiveX發布步驟

    1、單擊“開始”à“動行(R)”à輸入“cmd”à回車à進入到操作的控件所在的目錄,如圖6所示:

     

     

    2、創建PVK文件(私人密匙文件),在命令行中輸入“makecert -sk evS1300 evS1300.pvk -n CN=XXXXXXX公司”,然后回車,如圖7所示:

     

    3、創建CER文件(公司證書),在命令行中輸入“makecert -sk evS1300.pvk evS1300.cer”,然后回車,如圖8所示,若出現“Successed”提示,則會在E:\evS1300目錄下生成evS1300.cer文件,如圖9所示:

     

     

     4、創建SPC測試軟件出版商證明書,在命令行中輸入“cert2spc evS1300.cer evS1300.spc”,然后回車,如圖10所示:

     

    5、創建INF文件,用記錄本編輯以下信息

    [version]   
    signature="$CHINA$"  
    AdvancedINF=1.0  
      
    [Add.Code]   
    evS1300.ocx=evS1300.ocx   
    msvcr71.dll=msvcr71.dll   
    mfc71.dll=mfc71.dll   
    msvcp71.dll=msvcp71.dll   
      
    [evS1300.ocx]   
    file=thiscab   
    clsid={0440906E-9BD6-4F3E-B65A-39E1B339D9DA}   
    FileVersion=1,0,0,0  
    RegisterServer=yes   
      
    [msvcr71.dll]   
    file-win32-x86=thiscab   
    RegisterServer=no   
    DestDir=11  
    FileVersion=7,10,3052,4  
      
    [mfc71.dll]   
    file-win32-x86=thiscab   
    RegisterServer=no   
    DestDir=11  
    FileVersion=7,10,3077,0  
      
    [msvcp71.dll]   
    file-win32-x86=thiscab   
    RegisterServer=no   
    DestDir=11  
    FileVersion=7,10,3077,0 

     


    在evS1300.inf的內容里,[version]和[Add.Code]項是必須的,[Add.Code]的鍵值項的多少取決于以下你所配制項的多少。[msvcr71.dll]、[mfc71.dll]、[msvcp71.dll]就是上面我所說不是必須的項,只要你想把msvcr71.dll、mfc71.dll、msvcp71.dll包括在發布包里,那這么三項就必須寫在inf里,而這三項的具體內容是固定的,可復制過去即可。最為關鍵的就是[evS1300.ocx]項,其中有clsid和FileVersion就是evS1300.ocx的classId和version,這要求必須一至,否我們發布出去的CAB包時不能在客戶端自動更新下載安裝。說到這里,那我們如何才能知道evS1300.ocx里面的classId和version呢?我在上面的必備條件里介紹到有一個用于查看ocx控件的工具ActvxDoc,對,就是用它,我們雙擊這個文件運行它,此時可以看到圖13所示的界面:

     

    在圖13的界面里,點擊“File”à“Open…”,打開您所要查看的OCX控件,如圖14所示:

     

    打開了控件之后,我們在界面的右邊部位“Class”的下拉框里選擇“”就可以看到我們想要查找的FileVersion和classId,如圖15所示:

     

    6、創建CAB文件,在命令行中輸入“cabarc -s 6144 n evS1300.cab msvcr71.dll mfc71.dll msvcp71.dll evS1300.ocx evS1300.inf”,然后回車,如圖16所示:

     

    7、使用Code Signing Wizard簽署一個CAB文件,首先雙擊運行工具集里面的signcode.exe(或在命令行里直接輸入“signcode”后回車),系統會彈出如圖17所示的數字簽名向導:

     

    8、單擊“下一步(N)”按鈕,來到圖18所示,選擇要進行數字簽名的且已做成CAB包的文件evS1300.cab文件。

     

    9、選擇好CAB包后單擊“下一步(N)”按鈕,在選擇想要的簽名類型里選擇“自定議(C)”并單擊“下一步(N)”按鈕,如圖19所示:

     

    10、接下來單擊“從文件選擇(F)”按鈕,選擇剛剛制作的evS1300.cer,如圖20所示:

     

    11、在圖20中單擊“下一步(N)”按鈕來到圖21,然后在圖21里選擇“CSP中的私鑰(K)”。

     

    12、在圖21中單擊“下一步(N)”按鈕,然后在圖22中的散列算法中選擇“shal”,并單擊“下一步(N)”按鈕。

     

    13、在“證書路徑中的證書”中選擇“證書路徑中的所有證書,包括根證書(C)”,在“其它證書(可選)”中選擇“包括在以下PKCS #7 證書(.p7b)文件中的證書(P):”,并單擊“瀏覽(R)…”按鈕選擇evS1300.spc文件,選擇完后單擊“下一步(N)”按鈕,如圖23所示:

     

    14、接下來在彈出的“數據描述”窗口中輸入公司的名稱和網址并單擊“下一步(N)”按鈕,如圖24所示:

     

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

    (這里我提拱三個免費的代碼簽名時間戳地址)

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

    Comodo:  http://timestamp.comodoca.com/authenticode

    GeoTrust/TrustCenter: http://www.trustcenter.de/codesigning/timestamp

     

    16、完成,在圖25中單擊“下一步(N)”按鈕便可來到數字簽名向導的最后一步,即操作總覽,如圖26所示,單擊“完成”按鈕便可大功告成,如圖27所示:



    轉:http://blog.csdn.net/qcdn/archive/2008/03/07/2156655.aspx 

     

     

     

    posted on 2009-12-07 13:09 大魚 閱讀(666) 評論(0)  編輯  收藏 所屬分類: j2se

    主站蜘蛛池模板: 成年在线观看免费人视频草莓| 巨胸喷奶水视频www免费视频| 亚洲精品免费视频| 中文字幕第13亚洲另类| 中美日韩在线网免费毛片视频| 真实乱视频国产免费观看| 亚洲人AV在线无码影院观看| 免费精品人在线二线三线区别| 亚洲午夜无码毛片av久久京东热| 成人免费午夜视频| 日韩欧美亚洲中文乱码| 免费真实播放国产乱子伦| yellow免费网站| 精品国产综合成人亚洲区| 2020因为爱你带字幕免费观看全集 | 国产精品免费网站| 亚洲女人初试黑人巨高清| 亚洲免费网站观看视频| 亚洲另类自拍丝袜第五页| 国产不卡免费视频| 黄桃AV无码免费一区二区三区| 亚洲国产精品无码专区影院| 成人免费视频网站www| 亚洲av无码专区国产不乱码| www国产亚洲精品久久久| a级毛片高清免费视频就| 亚洲福利一区二区| 日本一线a视频免费观看| 免费人成大片在线观看播放电影| 亚洲美女又黄又爽在线观看| 3d动漫精品啪啪一区二区免费| 久久久久亚洲AV无码去区首| 中文字幕日韩亚洲| 在线观看视频免费完整版| 男女猛烈无遮掩视频免费软件| 亚洲国产精品成人精品无码区在线| AV大片在线无码永久免费| 免费一级毛suv好看的国产网站| 精品国产亚洲一区二区三区| 成人毛片视频免费网站观看| 久青草视频97国内免费影视|