zoukankan      html  css  js  c++  java
  • 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


    至此,全部完成。

  • 相关阅读:
    自学Zabbix8.1 Regular expressions 正则表达式
    自学Zabbix7.1 IT services
    自学Zabbix6.1 Event acknowledgment 事件确认
    自学Zabbix5.1 zabbix maintenance维护周期
    自学Zabbix4.3 zabbix实战监控Web网站性能
    自学Zabbix4.2.1 Application介绍
    自学Zabbix4.2 web监控项创建+item详解
    自学Zabbix4.1 zabbix监控web服务器访问性能
    自学Zabbix3.11-宏Macros
    自学Zabbix3.10.2-事件通知Notifications upon events-Actions报警配置
  • 原文地址:https://www.cnblogs.com/james1207/p/3395303.html
Copyright © 2011-2022 走看看