• active cab inf文件编写


    最近做了一个网页下载控件。主要就是实现ActiveX控件功能。

    由于自己是第一次做,不熟悉其过程。中间走了很多弯路。现在把走过得路程记录部分,希望对其他人可以有点用。

    首先制作一个你自己的DLL文件。这里就不累述DLL的制作了。网上DLL的制作多的是。下面介绍下inf文件的写。

    在自己弄的过程中在网络上也搜索了很多资料。但都不全面,甚至有错误。下面自己的一点心得和大家分享下:

    inf文件主要节点(也是我在制作中使用的节点,未使用到的我在此处也就没有发言权啦^_^):

    [Version] inf的版本信息

    [String] 自定义的本地化字符串

    [destinationDirs] 目的路径

    [defaultInstall] 默认安装

    [用户自定义节点]  用户可以自定义节点

    [目标目录ID]的值:(前后都加上百分号,例如  %01%  /  %16384% )

    01 INF文件所在的当前目录

    10 C:/Windows

    11 C:/Windows/System32

    18 C:/Windows/Help

    20 C:/Windows/Fonts

    24 C:/  即系统所在盘

    53 C:/Documents and Settings/[当前用户名] 其他常用的目录ID:

    16384 Current User/Desktop

    16386 Current User/Start Menu/Programs

    16389 Current User/My Documents

    16390 Current User/Favorites

    16391 Current User/Start Menu/Programs/Startup

    16392 Current User/Recent

    16393 Current User/SendTo

    16395 Current User/Start Menu

    16397 Current User/My Documents/My Music

    16398 Current User/My Documents/My Videos

    16400 Current User/Desktop

    16403 Current User/NetHood

    16404 C:/WINDOWS/Fonts

    16405 Current User/Templates

    16406 All Users/Start Menu

    16407 All Users/Start Menu/Programs

    16408 All Users/Start Menu/Programs/Startup

    16409 All Users/Desktop

    16410 Current User/Application Data

    16411 Current User/PrintHood

    16412 Current User/Local Settings/Application Data

    16415 All Users/Favorites

    16416 Current User/Local Settings/Temporary Internet Files

    16417 Current User/Cookies

    16418 Current User/Local Settings/History

    16419 All Users/Application Data

    16420 System Root (C:/WINDOWS)

    16421 C:/WINDOWS/System32

    16422 Program Files

    16423 Current User/My Documents/My Pictures

    16424 Current User

    16425 C:/WINDOWS/System32

    16427 C:/Program Files/Common Files

    16429 All Users/Templates

    16430 All Users/Documents

    16431 All Users/Start Menu/Programs/Administrative Tools

    16432 Current User/Start Menu/Programs/Administrative Tools

    16437 All Users/Documents/My Music

    16438 All Users/Documents/My Pictures

    16439 All Users/Documents/My Videos

    16440 C:/WINDOWS/resources

    16441 C:/WINDOWS/resources409

    16443 Current User/Local Settings/Application Data/Microsoft/CD Burning

    例子:

    此INF文件的目的:

    a.复制指定的文件到指定的目录

    b.自动注册指定的dll文件。

    [version] signature="$CHICAGO$"       ;此处的签名是告诉windows此inf文件为windows的安装文件。如果没有此签名windows 不会把inf文件当作windows识别的任何设备类型的inf文件接受。不区分大小写的。

    AdvancedINF=2.5

    [Strings]  ;此处主要定义一些本地化字符串,给出该inf的一些基本信息 Product="Your Product name" Vsersion = "1.1.1" Author = "www.youcompany.com" Copyright = "Conpyright 2008"

    [FileList] ;该节点是用户的自定义节点。用户自定义节点的格式就是[YourName],然后在下面写一些自己需要的内容就可以了。 ;该节点下只是指出了下面需要复制的文件的具体路径。 /test/Setup.exe test.dll

    [DestinationDirs] ;该节点是定义目的路径。 FileList=%11%/test/ ;该句的意义是:把上面用户自定义节点FileList下面包含的文件复制到目的目录:"c:/widows/system32/test/"下

    [RegisterDll] ;该节点为告诉系统需要注册的DLL有哪些。 %11%/test.dll ;指出所需要的DLL文件所在的具体路径。

    [AddMyReg] ;此节点为用户自定义节点。目的在于修改注册表相关项。 HKLM,"SoftWare/Microsoft/sign","",FLG_ADDREG_TYPE_SZ,1 ;格式:主键值,子键,类型,键值

    [DefaultInstall];默认安装 CopyFiles=FileList  ;复制FileList下的文件到[DestinationDirs]节点中FileList=%11%/test/所指定的目录 RegisterOCXs= RegisterDll ;自动注册[RegisterDll]节点指定的DLL文件 AddReg=AddMyReg ;添加一个注册表项。添加的内容根据[AddMyReg]节点指定的信息添加。

    inf文件制作完成。

    下面就打包成CAB包。我使用的工具是CabMaker。CabMaker使用很简单。

    CAB包完成之后还必须对其进行签名。签名需要特定的工具。比如你可以自己申请一个控件签名证书。一般签名是:

    启动signcode,会弹出一个用户对话框,大家可以根据自己的需要使用该对话框。在这里就不累赘了。

    签名的主要作用是告诉浏览器你的控件是安全的有公司负责地(*^__^*) ,可以放心使用地。

    到此一个签名的CAB包完成。下面就是在页面里面调用该CAB包啦。

    在 页面添加如下代码:

    <OBJECT id="test"  style="position:absolute; LEFT=0; TOP=0;width=0; height=0;"
    classid="clsid:12457889-2314-4578-Ad12-ABCD12351234" codebase = "test.cab#version=1,0,0,1" >

    注意:

         classid为你要使用到的DLL中的类的ID。在使用VC生成DLL是都会给一个ID。

        CodeBase是指定你的CAB包放在什么位置。

        Style是告诉系统你的CAB在页面什么位置显示。此处是不显示。

  • 相关阅读:
    ActiveMQ的用途
    HTTP 状态码的完整列表
    Linux中脚本运行错误(坏的解释器:没有那个文件或目录)
    Linux下ping: unknown host www.baidu.com的解决办法
    python中的collection
    Table里嵌套ASPXGridView
    致2015
    WPF学习之Binding(二)
    WPF学习之Binding(一)
    WPF UI布局(Layout)
  • 原文地址:https://www.cnblogs.com/thbCode/p/4207731.html
Copyright © 2020-2023  润新知