zoukankan      html  css  js  c++  java
  • 从网页上下载控件时制作CAB包的方法

    Internet 软 t 软件分发单位是“软件包”,它由包含 .inf 文件或软件分发 (.osd) 文件(或两者都包括)的 CAB 文件 (.cab) 所组成。一个分发单位也可以包含软件组件,如 ActiveX 控件 (.ocx)、.dll 文件、.exe 文件、Java 类文件或小程序。当 Web 页上 OBJECT 元素的 CODEBASE 特性引用包含.inf 文件的 CAB 文件时,Internet Explorer 3.0 和更新的版本将自动把 CAB 文件作为软件分发单位。
    第一步:创建一个inf文件:
    INF文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如DLL或者其它OCX)。
    一个INF文件就捆绑了CAB压缩文件所有的必须文件。 缺省情况下,
    与现有硬盘中文件版本号相同的文件不被下载。
    要了解有关INF文件及其选项(包括如何创建独立于平台的INF文件)的详细情况,
    请参考平台软件开发工具包(Platform SDK,)的设置和系统管理服务(Setup and System Management Services)
    部分的\Setup API\Overview\INF Files目录下的内容。
    下面就以我自己写的一个videoweb.dll为例子。在videoweb.dll中使用到:tdiio.dll,encoder.dll,decoder.dll,tdiio.ini,user.ini,
    camer.ini,drivo.ini.
    video.inf的例子:
    ;inf file for videoweb.dll
    [version]
    signature=$CHICAGO$

    [DestinationDirs]
    DLLSysCopy=11
    IniWinCopy=25

    [DefaultInstall]
    CopyFiles=DllSysCopy,IniWinCopy
    AddReg=videoReg

    [DllSysCopy]
    tdiio.dll
    Decoder.dll
    VideoWeb.dll

    [IniWinCopy]
    camer.ini
    user.ini
    xvidMP4.ini

    [videoReg]
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC},"",%REG_SZ%,"Video Class"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Control
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\InprocServer32,"", %REG_SZ%,"%11%\VideoWeb.dll"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\InprocServer32,"ThreadingModel",%REG-SZ%,"Apartment"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\MiscStatus,"",%REG_SZ%,"0"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\MiscStatus\1,"",%REG_SZ%,"131473"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\ProgID,"",%REG_SZ%,"VideoWeb.1.1"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Programmable
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\ToolboxBitmap32,"",%REG_SZ%,"%11%\VideoWeb.dll,102"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\TypeLib,"",%REG_SZ%,"{FC4352CB-BB55-498C-BB21-E4BAE2FC2584}"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\Version,"",%REG_SZ%,"1.0"
    HKCR,CLSID\{4BDA0AA3-2164-44B7-8A88-208A145F51DC}\VersionIndependentProgID,"",%REG_SZ%,"VideoWeb.1"
    ;end of INF file

    DestinationDirs:指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/SYSTEM 或者 WINNT/SYSTEM32;
    10 规定为窗口目录、WINDOWS或者WINNT。
    videoReg:如果是自己写的控件:可以在本地先用regsvr32 xxx.dll注册后,从注册表中找到上面的注册信息。
    当然以上仅仅是在internet上分发软件时一个很简单的inf文件,还有更复杂的inf文件。请看SDK。

    第二步:把video.inf, tdiio.dll,encoder.dll,decoder.dll,tdiio.ini,user.ini,
    camer.ini,drivo.ini.放在一个文件夹中。
    第三步:开始制作cab文件,我是用IExpress工具制作的(该工具在winnt\system32目录下面)。
    1:选择创建新的自解压指令文件。
    2:选择仅创建压缩文件(ActiveX安装)
    3:点击添加把你要供别人下载的文件添加
    4:点击浏览 输入*.cab文件的存放地址(包含文件名)
    5:就随便了
    好了制作完成。
    现在在你的网页中使用该控件,当别人访问你的网页时,如果他的机子上没有你的控件,浏览器就会自动下载安装。因为你的控件可能没有获得签名
    因此得在你的浏览器中把浏览器的安全级别降低。在internet 工具中选择安全,选择自定义。找到下载未签名的ActiveX控件。选择其下面的提示或者启用。
    在网页中插入:
    <OBJECT classid=clsid:4BDA0AA3-2164-44B7-8A88-208A145F51DC
    codebase="video.cab#version=2,0,0,1"
    id=Video1 style="HEIGHT: 507px; WIDTH: 718px"></OBJECT>
    该句.
    注意:得把*.cab 文件你和的网页放在同一目录下。或者在codebase中指定*.cab的路径。

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    jquery queryBuilder过滤插件的使用
    前端跨域问题
    [BZOJ 3326] 数数
    [BZOJ 2427] 软件安装
    [BZOJ 3675] 序列分割
    [Atcoder Grand Contest 004] Tutorial
    [P2831] 愤怒的小鸟
    [Atcoder Regular Contest 065] Tutorial
    [P3806] Divide and Conquer on Tree
    [POJ 1741] Tree
  • 原文地址:https://www.cnblogs.com/Athrun/p/1160915.html
Copyright © 2011-2022 走看看