精华内容
下载资源
问答
  • ocx制作成cab文件

    2011-06-11 21:20:31
    ocx制作成cab文件的做工具,简单实用
  • ocx打包成CAB控件的工具 里面包括各种exe小工具
  • OCX压制成CAB,实现网页自动下载。
  • []ocx打包成cab

    2008-12-04 13:11:00
    1、如果需要创建cab文件,首先需要Cabarc或者Makecab,它们随着Cabinet SDK的安装就有了,...Cabarc可以创建、查看或者解出cab里面的文件,而Makecab则只可以用来创建cab文件。2、制作cab文件时需要将所有的相关文
    1、如果需要创建cab文件,首先需要Cabarc或者Makecab,它们随着Cabinet SDK的安装就有了,Cabinet SDK的下载地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp。
    
    Cabarc可以创建、查看或者解出cab里面的文件,而Makecab则只可以用来创建cab文件。
    2、制作cab文件时需要将所有的相关文件都包含进去,可以通过Depends(VC自带的)检查需要的文件。使用inf文件将这些东西都写进去。
    3、inf搞法:inf文件描述cab中所有的ocx及dll文件,inf通过一些命名区域来提供需要的信息。

    怎么写inf
    最开始一般是[Version]区:
    eg: [Version]
        signature="$XXXX$"
        AdvancedINF=2.0
    接下来就是最重要的[Add.Code]区:
    eg: [Add.Code]
        Ctrl1.dll=C1Section
        Ctrl2.dll=Ctrl2.dll
    前面是要下载的文件名,后面是对应这个文件的区域名,可以是任何名字,不过一般都是和文件的名字相同,这样方便维护。还有需要注意是在[Add.Code]区出现的文件要根据依赖性进行排序,例如前面说的ctrl1.dll要依赖于ctrl2.dll,则ctrl2.dll要出现在ctrl1.dll的前面。因为安装时是按照相反的顺序进行的,也就是说先安装ctrl2.dll,然后才是ctrl1.dll,哧哧,记清楚了,不要搞反了。
    再接下来是各个文件的区域了
    [Ctrl1.dll]
    file-win32-x86=thiscab
    RegisterServer=yes
    clsid={.....}
    DestDir=
    FileVersion=1,0,0,0
    [Ctrl1.dll]区域中的第一个file值告诉ie到哪里去得到这个dll,file一共包括三个部分,第一部分是file,这个永远都是这样的(至少目前来说);第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC OX了;第三部分是CPU类型,比如说x86、 ppc (Power PC)、 mips或者alpha了。
    file的值可以取三个一个URL、ignore和thiscab,如果是URL则说明到URL所在的位置去下;如果是ignore说明对于这种OS和CPU,不需要下载这个文件(ctrl1.dll);如果是thiscab很明显就在当前的cab文件中了。
    接下来是RegisterServer,可以取两个值yes和no,如果为yes则说明ie要注册该dll,如果是no就不必了;
    再下来是DestDir,它的值是dll将要存到本地硬盘的位置,如果它的值是10,则将dll放到/Windows或者/WinNT下;如果是11,则放到/Windows/System或者
    /WinNT/System32下;如果是空(就是没有值)则会放到/Windows或者/WinNT下的Downloaded Program Files目录下;
    最后是FileVersion,这个就比较明显了,说明了ctrl1.dll的版本号。
    有时候我们使用VB来开发控件的时候,需要将VB的虚拟机装上去,它需要一些其它的说明的,简单地讲一下吧:
    在[Add.Code]中增加一项MSVBVM60.DLL=MSVBVM60.DLL(以VB6为例)下面是
    MSVBVM60.DLL区域:
    [MSVBVM60.DLL]
    hook=MSVBVM60.cab_Installer
    FileVersion=6,0,81,76
    FileVersion很明显,是版本号,就不再说发,就说说hook吧。
    hook区域是在安装的时候需要执行的区域,它分为两种,一种是有条件的,另外一种是无条件的,无条件的hook区域是必须执行的,反之则根据条件判断是否执行。以[Setup Hooks]标记的区域是无条件区域,如下所示
    [Setup Hooks]
        hookname=section-name

    [section-name]
    run=%EXTRACT_DIR%/setup.exe
    无条件区域常用来通过一个inf文件执行一个安装程序,这就是我们在资源管理器右键点击一个inf文件时在执行安装这样的菜单的原因了
    当ie下载了一个cab文件,如果文件中没有[Add.Code],则处理[Setup Hooks]区域,运行run所指定程序,哧哧,上面就是setup.exe;
    条件区域则为在一定条件下执行,前面为MSVBVM60.DLL指定的hook区域就是一个条件区域,如果在MSVBVM60.DLL指定的CLSID或者version不能满足需要而且没有file这个命名值,则执行hook所指定的区域。
    [MSVBVM60.cab_Installer]
    file-win32-x86=http://activex.microsoft.com/controls/vb6/VBRun60.cab
    run=%EXTRACT_DIR%/VBRun60.exe
    上面[MSVBVM60.cab_Installer]是一个hook区域,它也包含了一个file值,指定一个URL,表示MSVBVM60.DLL可以从这个URL下载得到;run则说明了执行哪一个文件
    这里有必要说明一下的是,MS对一些常用的Redistributable Microsoft DLLs
    可以通过指定CODEBASE属性为http://activex.microsoft.com/controls,这样在cab文件中就中需要包含这些文件,在计算机上有一个文件redist.txt上面的dll就是Redistributable Microsoft DLLs


    创建一个cab文件:
    cabarc N ctrl1.cab ctrl1.inf ctrl1.dll
    N表示要创建一个新的文件,ctrl1.cab是创建的文件名,ctrl1.inf是cab的inf,后而是需要加到cab里的文件,可以使用通配符。
    然后就可以将cab文件放到网页上了
    <OBJECT ID="Ctrl1Obj"
            CLASSID="clsid:....................................."
            CODEBASE="http://server.com/ctrl1.cab#version=8,0,0,5007">
    </OBJECT>
    这里也在一个version,不过这里的version是指控件的version,而inf里的是文件的version。


    制作电子签名:
    首先从下面的网址下载制作签名的工具SignCode,地址是
    http://msdn.microsoft.com/workshop/gallery/tools/authenticode/authcode.asp
    从签名授权中心如VeriSign或者你的局域网上运行的Microsoft Certificate
    Server授权服务器得到一个certificate,在申请授权的过程你会得到一个私钥。
    也可以使用MakeCert.exe和Cert2Spc.exe创建的私钥进行测试,方法是首先使用MakeCert创建一个X.509的certificate(.cer文件)
        MakeCert -sv MyKey.pvk n "CN=My Software Company" MyCert.cer
    然后利用Cert2Spc将.cer文件转换成为PKCS #7软件发布Certificate(.spc文件),
        Cert2Spc MyCert.cer MyCert.spc
    利用你下载的SignCode对你的cab文件进行电子签名
        SignCode -spc MyCert.spc -v MyKey.pvk -t http://
            timestamp.verisign.com/scripts/timstamp.dll ctrl1.cab
    SignCode还可以指定一些其它的参数,就不说了,太长了,哧哧。
    虽然可以利用测试的.cer和.spc文件,但是在发布的时候,必须申请。
    展开全文
  •  首先说下为什么要把ocx控件打包成cab文件,这是因为ocx控件,需要用户单独下载,然后自己通过resiger命令,在cmd中注册,这对于小白用户,显然不太显示,所以就需要打包成cab文件,由网页作为ActiveX控件自动的...

    说明 

           首先说下为什么要把ocx控件打包成cab文件,这是因为ocx控件,需要用户单独下载,然后自己通过resiger命令,在cmd中注册,这对于小白用户,显然不太显示,所以就需要打包成cab文件,由网页作为ActiveX控件自动的下载注册,这样用户使用起来就轻松了多。

    OCX打包CAB并过程(打包cab后可以在加入自定义签名)
    制作cab文件时需要将所有的相关文件都包含进去,可以通过Depends(VC自带的)检查需要的文件。使用inf文件将这些东西都写进去。

    1、制作inf文件

    setup.INF
    最开始一般是[Version]区:
    eg: [Version]
    signature=" $CHICAGO$ "
    AdvancedINF=2.0
    接下来就是最重要的[Add.Code]区:
    eg: [Add.Code]
    getcertocx.ocx=getcertocx.ocx
    前面是要下载的文件名,后面是对应这个文件的区域名,可以是任何名字,不过一般都是和文件的名字相同,这样方便维护。
    再接下来是各个文件的区域了
    [getcertocx.ocx]
    file-win32-x86=thiscab
    RegisterServer=yes
    clsid={0A0488CF-F9AB-4AC4-AD8F-CD893553DD22}
    DestDir=11
    FileVersion=1,0,0,1
    [getcertocx.ocx]区域中的第一个file值告诉ie到哪里去得到这个ocx,file一共包括三个部分,第一部分是file,这个永远都是这样的;第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC OX了;第三部分是CPU类型,比如说x86、mips等
    file的值可以取三个:一个URL、ignore和thiscab,如果是URL则说明到URL所在的位置去下;如果是ignore说明对于这种OS和CPU,不需要下载这个文件;如果是thiscab就在当前的cab文件中了。
    第二部分是RegisterServer,可以取两个值yes和no,如果为yes则说明ie要注册该ocx,如果是no就不必了;
    接下来是clsid,需要填写该ocx的class guid。
    再下来是DestDir,它的值是ocx将要存到本地硬盘的位置,如果它的值是10,则将ocx放到\Windows或者\WinNT下;如果是11,则放到\Windows\System或者
    \WinNT\System32下;如果是空(就是没有值)则会放到\Windows或者\WinNT下的Downloaded Program Files目录下;
    最后是FileVersion,说明了ocx的版本号。

    [version] 
    ; version signature (same for both NT and Win95) do not remove 
    signature="$CHICAGO$" 
    AdvancedINF=2.0 
    [Add.Code] 
    FerlyOcx2005.ocx=FerlyOcx2005.ocx
    libFLAlgJniCall.dll=libFLAlgJniCall.dll 
    setup.inf=setup.inf 
    [install.files] 
    FerlyOcx2005.ocx=FerlyOcx2005.ocx 
    libFLAlgJniCall.dll=libFLAlgJniCall.dll
    setup.inf=setup.inf 
    [FerlyOcx2005.ocx] 
    clsid={E962EB9D-583C-449D-AE47-1F0C389C0031} 
    file-win32-x86=thiscab 
    FileVersion=1,0,0,1 
    DestDir=11 
    RegisterServer=yes
    [libFLAlgJniCall.dll]
    file-win32-x86=thiscab      
    RegisterServer=no      
    DestDir=11
    [setup.inf] 
    file=thiscab 
    [RegisterFiles] 
    %11%\FerlyOcx2005.ocx 
    ; end of INF file 

    2、制作cab文件

    利用iexpress.exe(windows提供的一个向导式cab制作工具)
     
    选“创建新的自解压缩指定文件”,点“下一步”。
     
    选“仅创建压缩文件(ActiveX安装)”,点“下一步”。
     
    点“添加”将上边制作好的setup.inf和getcertocx.ocx文件添加进来,点“下一步”。
     
    点“浏览”输入要生成的CAB文件名称,并选中“在软件包中使用长文件名保存文件”,之后点“下一步”。
     
    选“不保存”,点“下一步”。
     
    点“下一步”。
     
    点“完成”退出向导,cab文件生成。
     


    展开全文
  • OCX转CAB

    2015-06-01 17:57:00
    cabarc.exe -s 6144 N E:\OCX\trans.cab MakeCAB.inf E:\OCX\trans.ocx 生成一个 CAB 文件。 第三步,制作数字证书。通过命令: makecert /sv "chinaums.PVK" /n "CN=chinaums.com" chinaums....

     

    OCX转成CAB

     

    最近有个项目,用到这项内容。折腾了很长时间,总算是搞定了。

    原理是这样的:IE上安装OCX控件,控件调用动态库,然后动态库来操作POS机进行交易。动态库以及配置文件放置的位置由OCX中来确定。我们的OCX是到当前宿主程序下去读,这里也就是IE所在的目录。需要注意的是,64位系统应该将配置文件及动态库放置在Program Files (x86)下的宿主程序目录,因为插件的开发环境是在32位系统下。如果仅仅是OCX文件,那么安装的话就需要手动进行注册。转换成CAB的好处就是,浏览器打开网页后,会自动检测这个插件,然后提示安装。那么这个安装过程就完全自动化了。

    在啰嗦一句,最上层是通过JavaScript来调用控件中的函数。

    那么,我们的重点就在于将OCX转成CAB

    第一步,写一个.inf文件,这里我们命名MakeCAB.inf,文件内容如下:

    [version] 
    signature="$CHINA$"  
    AdvancedINF=1.0
    [Add.Code]
    trans.ocx=trans.ocx
    [trans.ocx]
    file-win32-x86=thiscab
    clsid={37E957C6-82B4-48AA-8C68-BE926A3589A3}    
    FileVersion=1,0,0,1   
    RegisterServer=yes


    需要说明的是,clsid应该是控件生成的时候就已经有了。[Add.Code]下面就是添加要打包的文件,可能还包含一些dll文件等,这里我们只有一个控件文件。如果还包含dll文件的话,那么后面还需要继续添加对dll文件的说明。这里给出一个大致的例子:

    第二步,通过命令

    cabarc.exe -s 6144 N E:\OCX\trans.cab MakeCAB.inf E:\OCX\trans.ocx

    生成一个CAB文件。

    第三步,制作数字证书。通过命令:

    makecert /sv "chinaums.PVK" /n "CN=chinaums.com" chinaums.cer

    ,过程中需要多次输入密码,我也不知道如果前两次的输入不一致会怎样,我这里输入的密码都是一样的。这样就会生成两个文件,一个是chinaums.cer数字证书文件,另一个chinaums.PVK是私钥文件。

    第四步,给CAB进行数字签名。运行signcode.exe,按照提示一部一部操作:

     

    最后一步需要注意,如果按照默认的话可能会报错,我们这里选择第三项。然后继续往后走,就可以成功的对CAB进行数字签名。

    服务端的html文件中添加如下代码:

    <object id="trans" 
                  classid="clsid:37E957C6-82B4-48AA-8C68-BE926A3589A3" 
                  codebase="trans.CAB#version=1,0,0,1"
                  style="display:none;" >
    </object>


    clsid按照自己的来。Version也按照自己的配置文件来,CAB名字也一样,该成自己的名字。JavaScript调用示例如下:

           function doQD(){
                  var trans=document.getElementById("trans");
                  var wsh=trans.DoICBCZJMisTranSTD("4001","","","","");
                  alert(wsh);
           }


    然后将CAB文件放在和这个html同目录下,启动服务,IE打开就会提示你自动安装。但是,由于这里的证书是自己做的,肯定不会被IE信任,那么这就需要对浏览器做一定的设置。进入IEInternet选项,如下,注意打钩的选项卡:

    这样就算完成了。看控件是否安装成功,运行regedit命令,然后编辑à查找,输入您的clsid进行查找,如果能查找到就说明控件注册成功。

    话说回来,这种过时的技术,就没有必要在深入的折腾了,能用就行了,唉,蛋疼死了。

     


    转载于:https://my.oschina.net/u/2245029/blog/423573

    展开全文
  • MFC ActivexOCX 打包成CAB

    2015-01-23 14:12:54
     接下来做的是你要签名你的CAB文件,跟上面签名OCX文件一样,不再多说。  这就是打包CAB 与数字签名的一般步骤。   主要强调的是,如果你的ocx项目有运行时许可证,一定要包含项目.lic文件,否则注册会没...

            说的肯定是免费的哈。 穷人一枚。

           

    (1)创建一个自己的证书文件:

    makecert /sv " test.PVK " /n "CN=WWW.mysite.COM" test.CER

     HJHP.PVK 表示新创建的私人密钥保存文件名

          WWW.mysite.COM 被颁发证书的公司名字

    test.CER 是你创建最后的证书文件名

    最后得到test.PVK和test.CER 两个文件。

    其中,运行过程中需要输入私人密钥的保护密码,一定要输入一致,不要出错。

     

    (2)转换cer格式证书为spc格式证书

    cert2spc test.CER AxTest.spc

    得到AxTest.spc 文件。

     

    签名ocx 控件

    1、双击 signcode.exe

       下一步

       选择要签名的文件  myOcx.ocx

       下一步

       选择 “自定义”

       点击 “从文件选择”

      找到 之前抓换好的 AxTest.spc 文件

      下一步

    选择你的密钥 就是PVK文件

    下一步输入密码,随意输入记住要与后面的一样

    选择 加密方式,随意选择/

     时间戳    

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

          输入一次密码 ,就完成了ocx签名

        

         打包CAB文件,首先要创建一个 inf文件。

    内容如下:

    [version]  
    signature="$Chicago$" 
    AdvancedINF=1.0 

    [DefaultInstall]             安装文件的方式
    CopyFiles=files  
    RegisterOCXs=RegisterFiles  
     
    [DefaultUninstall]      卸载的方式
    cleanup=1  Delfiles=files  
    UnRegisterOCXs=RegisterFiles  
     
    [SourceDisksNames]               打包后的文件名
    1 = %DiskName%,"IPCocx.CAB",1 
      
    [SourceDisksFiles]                          要包含的文件名。  一般是ocx,cer,以及lib,dll文件等等。 
    IPCOcx.ocx=1
    IPC.CER=1
    IPCOcx.lib =1


    [files]                             文件解压后的名字。一般直接等
    IPCOcx.ocx=IPCOcx.ocx
    IPC.CER=IPC.CER
    IPCOcx.lib = IPCOcx.lib


    [RegisterFiles]           要注册的文件
    %11%\IPCOcx.ocx
       
    [DestinationDirs]      文件夹
    files=11


    [IPCOcx.ocx]   //对各个文件进行详细描述,ocx控件的clsid编码可以通过 RegDllView.exe 工具注册ocx组建后查看到,查看完后删除即可
    file-win32-x86=thiscab  
    clsid={3B4D07AD-189A-4CAA-BE05-EFC0EA1048A5}
    RegisterServer=yes  
    FileVersion=1,0,0,0
     
    [IPC.CER]  
    file-win32-x86=thiscab  
     
    [Strings]   //定义一个目录
    DiskName = "IPCOCX" 

    然后打开 IExpress.exe

    选中建立CAB压缩包

    添加文件。  这里要强调,如果你的OCX项目创建时有运行时许可证,就要添加Release文件夹下的一个 项目名称.lic文件。千万不要忘记,否则你的ocx注册无效。

    还有什么lib,dll啊,都一并添加。

        下一步

    点【浏览】 为保存文件选择存放位置和设置文件名,我的文件名是 myOcx3.CAB

    下一步

    选” 不保存SED”,下一步

    下一步

    完成

    然后你的CAB文件就OK,

     接下来做的是你要签名你的CAB文件,跟上面签名OCX文件一样,不再多说。

     这就是打包CAB 与数字签名的一般步骤。

     

    主要强调的是,如果你的ocx项目有运行时许可证,一定要包含项目.lic文件,否则注册会没效果的,这个问题我卡了整整一下午,网上很多也没提到。   自己摸索了半天才找到原因所在。

     

    切记切记,时间可贵,别在学我了。

    展开全文
  • OCX打包成CAB的方法

    2011-10-12 15:29:34
    以下假定ggg.ocx依赖于bbb.dll,要打包这两个文件需要一个ggg.inf文件,内容如下 ;-------------------------------- [Add.Code] ggg.ocx=ggg.ocx bbb.dll=bbb.dll [bbb.dll] file-win32-x86=thiscab File...
  • (转发)MFC Activex 开发、ocx打包成cab、部署、测试、自动升级 原文见该地址:https://www.cnblogs.com/xiangxinhouse/p/10391406.html,平常不好找,放这里随时回顾。 一、MFC Activex 项目的构建 此处...
  • OCX打包成CAB包以及签名发布

    千次阅读 2013-05-08 14:57:48
    前言 这几天一直在钻研ActiveX控件,后期的OCX文件打包却让人纠结。 一、用于将ActiveX控件进行打包的工具 makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥和公钥。 cert2spc.exe 将cer格式...
  • ocx打包成CAB,并签名

    2017-05-25 11:40:00
    接下来打包成CAB   运行IEXPRESS.EXE,IEXPRESS.EXE为系统自带的程序,一般情况下,位于System/Windows目录下。 在上图中选中"创建新的自解压缩指令文件:Create new Self Extraction Directive file ",...
  • From: http://blog.csdn.net/ghlfllz/article/details/5931402 生成TesterOCX.inf,输入如下内容: [version] signature="$CHICAGO$" AdvancedINF=2.0 ...TesterOCX.ocx=TesterOCX.ocx
  • 开始前,需要准备好需要打包的ocx文件,以及这个ocx文件依赖的所有文件,包括dll文件、图片等等。比如,本人的ocx文件名是tot.ocx,依赖的文件是如下: ConfigModule.dll=ConfigModule.dll DllDeinterlace.dll=...
  • 发布ActiveX控件(把ocx成cab发布) --activex数字签名 最近我正在研究ActiveX技术。我使用Delphi 7创建了一个具有ActiveForm的ActiveX控件应用程序。这个控件产生一个.OCX文件。现在,我需要把这个控件部署在...
  • SignTool:ocx控件打包成cab,省去安装空间的步骤
  • 用系统自带工具iexpress.exe把 13个动态库, 1个OCX, 1个自己写的INF文件, 打包成CAB包 用网上下的工具makecert.exe生成证书.cer和.pvk 用signcode.exe给CAB签名,当运行到最后一次输入密码时就会报错,如下图 [img=...
  • OCX控件打包成CAB

    2015-01-28 10:09:58
    项目需要,利用VS2010,MFC,开发AcitveX控件。做好以后需要打包,研究了一下,...3、运行ocx2cab.exe,将控件打包成CAB 4、运行signcode.exe,进行数字签名 5、运行chktrust.exe,查看是否成功 已经验证成功
  • 64位ocx控件打包cab和exe的方法,是一个不错的工具,有需要的可以下载
  • 32位ocx控件打包cab和exe的方法,是一个不错的工具,有需要的可以下载
  • vc开发ocx并打成cab

    2012-08-17 17:48:22
    介绍用VC建立简单的OCX工程,并且将其打成CAB包,页面上面可以直接调用CAB包,进行控件下载
  • OCX控件打包成CAB并实现数字签名过程
  • [Delphi] 发布ActiveX控件(把ocx成cab发布) ***********转贴********** 作者:光明兄弟 activex数字签名 最近我正在研究ActiveX技术。我使用Delphi 7创建了一个具有ActiveForm的ActiveX控件应用程序。这个控件...
  • 打包ocxCAB的详细步骤,包括打包所必需的inf文件的格式,以及如何为ocxcab包数字签名
  • 在web 网页中如何打包ocx(ActiveX)为cab文件,win10下OCX控件打CAB包web页面使用教程
  • OCX打包CAB并签名过程 一、打包cab 制作cab文件时需要将所有的相关文件都包含进去,可以通过Depends(VC自带的)检查需要的文件。使用inf文件将这些东西都写进去。 1、制作inf文件 default.INF 最开始一般是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,665
精华内容 1,066
关键字:

ocx转成cab