zoukankan      html  css  js  c++  java
  • ActiveX控件开发总结(续)

    ActiveX控件的打包安装

    可以把ActiveX控件打成CAB包,在页面中指定该CAB包的位置,如果目标机器访问页面时,没有安装过此控件,则IE会自动下载此CAB包到目标机器,并进行安装

    1、 确认ActiveX控件依赖于哪些DLL

    使用vcDEPENDS.EXEMicrosoft Visual Studio\Common\Tools目录下)打开ocx/dll文件,即可看到其依赖的dll文件


     

    2、 setup.ini文件

    IE就是根据setup.ini文件,来进行控件和相关DLL的下载和安装的。

    例如:

    [version] --版本信息,都是固定的

    ; version signature (same for both NT and Win95) do not remove

    signature="$CHICAGO$"

    AdvancedINF=2.0

     

    [Add.Code]    --要打包的文件

    NVS_VAE.ocx=NVS_VAE.ocx

     

    [NVS_VAE.ocx]    --文件的信息,其中不需要注册的,clsid可以不写。版本号如果dll的属性中有的,使用其真正的版本号,没有的,可以随便写

    file-win32-x86=thiscab

    clsid={c8cd5ebc-817b-401f-ab06-05cc55c8d9ee}

    FileVersion=1,0,0,1

    RegisterServer=yes

     

    [RegisterFiles]       --要注册的文件

    %11%\NVS_VAE.ocx

     

    需要注意的是,这里面只需要要注册的文件和其依赖的dll文件,资源文件等不需要打包。

    3、 使用iexpress进行打包打包

    可以使用系统自带的iexpress.exeC:\WINDOWS\system32目录下)工具进行打包。工具默认是8.3命名格式,会把不符合命名规则的文件名截断,可以在打包过程中选择长命名。




          

           之后都下一步即可。

    4、 CAB包进行签名

    1、 制作(购买)证书

    正式的证书需要向相关机构购买,可以制作测试的证书,步骤如下:

    Visual Studio的安装目录下,有制作证书和签名的相关工具

    E:\Microsoft Visual Studio 8\SDK\v2.0\Bin\ makecert.exe

    命令行中执行如下命令来创建测试证书:

    E:\Microsoft Visual Studio 8\SDK\v2.0\Bin>makecert.exe -sv D:VAE.pvk -ss VAE -n

    "CN=huawei" -$ commercial -r D:VAE.cer

    在弹出的窗口中输入证书密钥密码


    再次确认密码


     

    证书文件就生成在指定位置了。

    2、 CAB包进行签名

    Visual Studio的安装目录下,有制作证书和签名的相关工具

    E:\Microsoft Visual Studio 8\SDK\v2.0\Bin\ signtool.exe

    在命令行执行:signtool.exe signwizard命令,会启动签名向导


     

    签名向导:


     

    下一步,选择要打包的CAB文件


    下一步选择自定义


     

    下一步选择“从文件选择”,选择前面生成的证书文件


    下一步选择“磁盘上的私钥文件”,选择前面生成的私钥文件


    下一步输入密码


     

    确定后选择MD5加密


    之后一直下一步(根据需要填写内容,也可都默认)

    最后再输入一次密码,就成功签名了


    5、 页面指定路径

    页面中指定CAB包位置和版本号

    <BODY>

    <OBJECT ID="NVS_VAE" CLASSID="CLSID:c8cd5ebc-817b-401f-ab06-05cc55c8d9ee" codeBase="NVS_VAE.CAB#version=1,0,0,1">

    </OBJECT>

    </BODY>

    访问到此页面,IE自动判断CLSID在目标机器上是否有注册,没有注册重新下载,并注册,有注册,比较版本号,有更新则取根据setup.ini中的版本号进行更新。可以到C:\WINDOWS\Downloaded Program Files目录查看CAB包是否有下载安装。

    6、 使用安装程序打包

    另外,也可以制作安装程序(可以使用常用的安装程序制作工具,也可以使用VS自带的建立安装部署功能来进行),把安装程序打到CAB包中,这样当IE下载CAB包的客户机上后,会根据setup.ini中的指定执行命令,执行安装程序,由客户自己选择安装路径

    脚本如下:

    ;//这里注意了,发行包安装的信息

    [setup.exe]

    fileVersion=8.0.50727.42

    hook=InstallerHook

    ;//这项并没有设置file-win32-x86的值,因为它并不在CAB里面,这里设置了一HOOK,让HOOK

    ;//来处理

    //发行包的安装来源

    [InstallerHook]

    ;//这里安装默认是在同X.CAB的目录,如果是在网站,可以更改为URL路径

    ;//如:http://www.x.com/vcredist.cab

    file-win32-x86=NVS_VAE.CAB

    ;//这里就是让CAB自动解压过后,运行CAB包里面的 setup.exe

    run=%EXTRACT_DIR%\setup.exe

    男人就是责任!
  • 相关阅读:
    转ihone程序内发邮件,发短信,打开链接等
    plist 文件的读写
    转object c语法速成
    转iphone项目之间的引用。
    object c求nsstring 长度和去掉前后空格的方法
    object c runtime中类类型和消息支持检查
    转NSDictionary类使用
    设置UITableview 浮动的 header
    NSString 类型plist转为NSDictionary
    ObjectiveC Unicode 转换成中文
  • 原文地址:https://www.cnblogs.com/snben/p/2701124.html
Copyright © 2011-2022 走看看