`
kiki1120
  • 浏览: 307488 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

如何制作cab包(解决不能注册的问题)

阅读更多

    在上一篇文章中,讲述了如何制作客户端Activex插件的cab包,但是在使用过程中发现有的浏览器不能注册成功,手动注册也不行,提示缺少动态链接库的问题,导致不能正常使用。后来重新编译ocx,将其他dll补充进来一起打包,但仍然不能注册成功。

 

    于是将所有文件复制到system32文件夹下,手动进行注册,结果注册失败。原来是inf中的写法将system32作为目的文件夹,而该文件夹却不允许这样操作。至于原因,目前还不清楚,网上搜索到的例子也都是使用system32,可能我的ocx比较特殊吧,那就使用system32下新建的一个目录吧,这次手动注册可以成功。

 

    重新打包、测试,有点崩溃了,为什么还是注册不了。现象是浏览器提示是否安装,点击安装后无反应,刷新页面还是提示是否安装。后来查看支付宝的支付控件中的inf文件,按照其格式重新制作inf文件,再次测试,成功!

 

如何制作cab

制作SSL VPN客户端插件cab包有两种方法,一种是手动打包,另一种是利用Ant自动打包,下面分别对两种方法进行说明,你可以根据熟练程度自由选择。

一、手动打包

准备工作

l  用到的工具

打包工具iexpress.exe

签名工具signcode.exe

代码签名证书

l  打包文件

WVC.ocx

LiteUnzip.dll

mfc80u.dll

mfcm80u.dll

msvcm80.dll

msvcp80.dll

msvcr80.dll

Microsoft.VC80.CRT.manifest

Microsoft.VC80.MFC.manifest

       在制作cab包之前,需要准备以上的打包、签名工具和文件,将iexpress.exesigncode.exe复制到Java环境变量的bin目录下。打包文件全部存放在独立的一个文件夹下。

制作步骤

步骤1 准备inf文件

将以下代码另存为wvc.inf,存放于打包文件目录下。文件内容一般情况下不需要改变,除非cab需要增加或减少文件的情况下,再修改此文件。

 

 

[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[DefaultInstall]
CopyFiles=files
RegisterOCXs=RegisterFiles

[DefaultUninstall]
cleanup=1
Delfiles=files
UnRegisterOCXs=RegisterFiles

[SourceDisksNames]
1 = %DiskName%,"wvc.cab",1

[SourceDisksFiles]
WVC.ocx=1
LiteUnzip.dll=1
mfc80u.dll=1
mfcm80u.dll=1
msvcm80.dll=1
msvcp80.dll=1
msvcr80.dll=1
Microsoft.VC80.CRT.manifest=1
Microsoft.VC80.MFC.manifest=1
westone.cer=1

[RegisterFiles]
%11%\sslvpn\WVC.ocx

[DestinationDirs]
files=11, sslvpn

[files]
WVC.ocx=WVC.ocx
LiteUnzip.dll=LiteUnzip.dll
mfc80u.dll=mfc80u.dll
mfcm80u.dll=mfcm80u.dll
msvcm80.dll=msvcm80.dll
msvcp80.dll=msvcp80.dll
msvcr80.dll=msvcr80.dll
Microsoft.VC80.CRT.manifest
Microsoft.VC80.MFC.manifest
westone.cer=westone.cer
   
[WVC.ocx]
file-win32-x86=thiscab
clsid={C8E6EFFA-ED02-4858-836A-B164102F3C5D}
RegisterServer=yes
FileVersion=1,0,0,1
   
[LiteUnzip.dll]
file-win32-x86=thiscab
FileVersion=0,0,0,2

[mfc80u.dll]
file-win32-x86=thiscab
FileVersion=8,0,50727,42

[mfcm80u.dll]
file-win32-x86=thiscab
FileVersion=8,0,50727,42

[msvcm80.dll]
file-win32-x86=thiscab
FileVersion=8,0,50727,42

[msvcp80.dll]
file-win32-x86=thiscab
FileVersion=8,0,50727,42

[msvcr80.dll]
file-win32-x86=thiscab
FileVersion=8,0,50727,42

[westone.cer]
file-win32-x86=thiscab

[Strings]
DiskName = "sslvpn"

 

 

注释:

²  "thiscab" 是一个关键字,意指包含该INFCAB文件。也可以从网上下载所需要的DLL文件,只要指定一个HTTP 网址即可,如:

²  关键字"file-win32-x86" 指定平台是 x86

²  文件版本号可见属性。

²  "DestDir"指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/ /SYSTEM32;

²  "clsid" 指的是要安装控件的CLSID

步骤2 签名ocx文件

运行signcode.exe

1)      选择要签名的ocx文件,由于dll不需要注册到系统,所以不必签名。

2)      选择代码签名证书公钥。

3)      选择代码签名证书私钥。

4)      其他选项均为默认设置,输入证书私钥口令,输入时间戳,再一次输入私钥口令。

步骤3 制作CAB

运行iexpress.exe

1)      选择“Create new Self Extraction Directive file”,点击下一步。

2)      选择“Create compressed files only(ActiveX Installs)”,点击下一步。

3)      点击Add,选择所有文件包括inf,点击下一步。

4)      点击Browse,输入.CAB文件的存放地址(包含所取文件名),并且要选中 Store files using Long File Name inside Package”。点击下一步。

5)      选择“Dont save”,一直点击下一步,直到完成。

步骤4 签名CAB

 

同步骤2,选择刚刚生成的cab包进行签名,注意签名后复制到webapp/download目录时需要更名为wvc.cab

 

步骤5 删除ocx插件

如果想删除已安装的插件,重新注册,那么进入安装目录c:\windows\downloaded program files,选中WVC删除即可。

二、自动打包

准备工作

l  用到的工具

打包工具cabarc.exe

签名工具signcode.exe

l  打包文件

WVC.ocx

LiteUnzip.dll

mfc80u.dll

mfcm80u.dll

msvcm80.dll

msvcp80.dll

msvcr80.dll

Microsoft.VC80.CRT.manifest

Microsoft.VC80.MFC.manifest

在制作cab包之前,需要准备以上的打包、签名工具和文件,将cabarc.exesigncode.exe复制到Java环境变量的bin目录下。打包文件全部存放在webapp/download/wvc文件夹下。更新build.xml文件。

制作步骤

步骤1 准备inf文件

参照手动打包步骤。

步骤2 修改本地时间

 

由于代码签名证书已经过期,所以需要将本地时间修改成证书还没有过期的时间,否则签名失败。如果拥有未过期的代码签名证书,此步骤可以忽略。

步骤3 执行build.xml的activex任务

Eclipse中打开build.xml文件,执行activex任务。该任务会自动签名wvc.ocx文件,生成wvc.cab并签名。

分享到:
评论
1 楼 yangge3232 2014-04-25  
你好,我的cab  chktrust  能运行,就是放在服务器上无法安装和下

相关推荐

    VS2008(c#)开发ActiveX控件、访问及制作CAB包总结

    1.说明如何编写ActiveX控件并制作CAB压缩包。制作一个ActiveX控件,在网页中安装加载,然后可以通过javascript访问,设置ActiveX控件中的时间显示; 2.介绍C#如何在ActiveX控件中调用javascript的函数; 3.ActiveX版本...

    win10下OCX控件打CAB包web页面使用教程(亲测可用)

    win10下OCX控件打CAB包web页面使,以及解决IE浏览器组织ActiveX控件加载的问题,检查控件是否注册成功;

    Active控件打包成cab文件,置于网页中自动下载安装

    做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该ActiveX控件(test.ocx)放在本机的%system%/system32下,然后...

    ActiveX控件打包成Cab置于网页中自动下载安装

    做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该ActiveX控件(test.ocx)放在本机的%system%/system32下,然后...

    WINRAR5.0正式注册版

    WinRAR 正式版已注册 最新版本的最新更新 版本 5.00 1. 新的 RAR 5.0 压缩文件格式。你可以在压缩对话框中使用 "RAR 5.0" 选项或命令行中 使用 -ma 开关创建 RAR 5.0 压缩文件。 较老的软件,包括老版本的 ...

    WIN XP蓝屏代码大全

    ◇解决方案:首先尝试重启电脑看是否能解决问题, 如果不行, 则尝试"最后一次正确配置"进行解决. 14、0x0000005E:CRITICAL_SERVICE_FAILED ◆错误分析:某个非常重要的系统服务启动识别造成的. ◇解决方案:如果是在安装...

    asp.net知识库

    如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值 Asp.net地址转义(分析)加强版 Web的桌面提醒(Popup) Using the Popup Object Click button only once in asp.net 2.0 Coalesys PanelBar ...

    计算机C++复习资料及封装技术教程(精华版)

    由于微软对封装部署工具的种种限制,导致封装部署不能用于不同硬件抽象层的计算机,又由于计算机磁盘的多样化发展进一步限制了封装部署的广泛性,这两个问题就是经典的计算机电源管理问题与SRS(SATA&RAID&SCSI)...

    winrar3.7 Beta8

    解决了一个 WinRAR 3.60 在 Windows 95 中的一个兼容性问题。 <br> 版本 3.60 <br> 1. 多线程版本的 RAR 压缩算法提高了在有数个 CPU、多核心 CPU 和使用超线 程技术的处理器的计算机上的压缩速度。...

    rar压缩软件.rar

    3) 作为一个特别的例外,如果目录名被作为参数指定并且目录名不包 含文件掩码和以反斜线结尾,即使没有指定 -r 开关,目录和子目录的 所有内容都会被添加到压缩文件中。 下面的命令会把 Bitmaps 目录和它的子...

    IIS6.0 IIS,互联网信息服务

    要解决这个问题,只要清空“SMTP Service”选项前的复选框即可。如果进入窗口中,“Internet信息服务(IIS)” 选项无法选择,那么很可能因为你使用的“iis.dl_”和“iis. in_”是从Windows XP专业版中提取的,只要换...

    电脑高手必备 Windows系统35招实用技巧

    Windows XP”是解决诸如新添加的驱动程序与硬件不相符之类问题的一种方 法。用这种方式启动,Windows XP只恢复注册表项 HklmSystemCurrentControlSet下的信息。任何在其他注册表项中所做的更改 均保持不变。  ...

    windowsnt 技术内幕

    理解NTFS分区和文件大小限制 NTFS POSIX.1符合性 为NTFS分区整理碎片 可移动介质和Windows NT 理解运行第三方磁盘工具造成的问题 支持基于Win32的应用程序 理解Windows NT对附加技术的支持 知道在什么时候不能使用...

    注册表修改大全(作者:Sunny)

    控制面板中那个设置光标闪烁的功能并不能完全禁止住光标闪烁,我们这有另外一种方法,用注册表编辑器打开到HKEY_CURRENT_USER\Control Panel\desktop,看看右边有没有 “CursorBlinkRate”,如果没有请在右边空白处...

    精通Windows.API-函数、接口、编程实例.pdf

    1.2.7 “解决方案”与“工程” 8 1.2.8 使用命令行工具编译 8 第2章 Windows API概要 10 2.1 Windows数据类型 10 2.1.1 Windows数据类型示例 10 2.1.2 Windows数据类型与标准C数据类型的关系 14 2.1.3 ...

    精通WindowsAPI 函数 接口 编程实例

    1.2.7 “解决方案”与“工程” 8 1.2.8 使用命令行工具编译 8 第2章 Windows API概要 10 2.1 Windows数据类型 10 2.1.1 Windows数据类型示例 10 2.1.2 Windows数据类型与标准C数据类型的关系 14 2.1.3...

Global site tag (gtag.js) - Google Analytics