Web发布cab文件打包的ActiveX控件总结

CAB打开工具(extract.exe和CAB Explorer软件) cab文件   压缩包文件。存储多个压缩文件的单个压缩包文件。这些文件通常用于软件安装,还用来减小文件大小和缩短 Web 内容的相关下载时间。   cab是windows的压缩格式,用winrar可以打开.但有些是经过加密的.用一般的压缩程序都是打不开的。   一、利用extract解压缩CAB文件   1.extract.exe 是一个 ms-dos 程序,所以没有窗口的图形接口,如果你以前曾是 dos 操作系统的使用者的话,应该对这类程序的使用语法不会感到陌生.来看一下 extract 的指令说明.   extract /a /l   cabinet 是 cab 文件名称   •filename 是你要从 cab 取出的文件名称   •destination 是文件解出后要摆放的位置   •< >只是用来标记说明的,不是「命令」的一部分,注意:每一参数间都有一空白.   •如果你有 dos 使用经验,不妨可以使用 /? 参数(extract /?)来看一下 extract 的指令说明.   •因为我并没有 windows 95/98 的 cab 详细清单,所以,我也不知道哪个文件是在哪个 cab 文件里,唯一的方法,就是去试着一个个cab里慢慢找.   ■举个实际的例子会比较容易明白,假设,我要解 shell.dll 到 c:\windows\system下(shell.dll 是在 precopy1.cab 里)假设我的光驱代号是 f,你换成你的光驱代号就行了.(就是指向你 cab文件的所在路径)   extract /a f:\win98\precopy1.cab shell.dll /l c:\windows\system   ■extract 也可以接受「万用字符」* 符号. 例如要解壓C:\CAB\data1.cab中所有文件到指定文件夾C:\CAB,則執行以下命令: extract /a C:\CAB\ data1.cab * /l C:\CAB 二、利用CAB Explorer工具(請見附件) 立即下载

一、程序描述:
程序环境:windows Xp sp2, ie 6, tomcat 5.5, vc++6.0

程序过程:控件做成ocx文件,用于客户端调用本地硬件,其中有用到第三方几个.dll文件。采用windows自带iexpress.exe 打包成cab文件,在服务器端jsp页面进行控件调用,下载cab文件并自动注册。

二、程序问题:
遇到问题:
1.       cab文件无法下载,而且根本不加提示。
2.       下载好的cab文件在system32中能够看到,但是页面仍然不能显示,一把红叉,并且无法使用。

问题测试:
1.       浏览器页面根本没有下载提示,考虑应该是cab的路径问题,也曾考虑是ie浏览器的安全问题。将安全降到最低测试。反复更改cab路径。
2.       这个问题最郁闷,搞了很久。考虑首先是安全问题,然后在网上搜索之后说是sp2调高了安全策略,有说降低安全,有说需要对程序进行数字签名。

问题解决:
1.       确实是路径不对,与安全无关。当在jsp中代码为:
<OBJECT id=pos codebase="TestCAB.CAB#version=1,0,0,1" height=100 width=100 classid="CLSID:719A1D6E-7099-4123-9D63-F0118AFF2D61" VIEWASTEXT></OBJECT>
TestCAB.CAB文件应该放置在tomcat5.5安装目录Tomcat 5.5\webapps下该调用jsp所在的工程下。
2.       不需要更改安全级别,而应该在Internet选项-〉安全-〉受信任的站点-〉站点 中添加服务器地址。注意:不要选复选框“对该区域中的所有站点要求服务器验证”。

三、总结:
1. 将ocx文件以及第三方dll文件打包成cab文件:
Internet 软件分发单位是“软件包”,它由包含.INF文件或软件分发.OSD文件(或两者都包括)的.CAB文件所组成。一个分发单位也可以包含软件组件,如 ActiveX 控件(.OCX)、.DLL文件、.EXE文件、Java类文件或小程序。当Web页上OBJECT元素的CODEBASE特性引用包含.INF文件的. CAB文件时,Internet Explorer将自动把.CAB文件作为软件分发单位下载并安装,每次访问时还会自动检测版本并进行更新。
INF文件是一个文本文件,指定运行控件所需要下载或者呈交的文件(比如.DLL或者其它.OCX)。一个.INF文件就捆绑了.CAB压缩文件所有的必须文件。 缺省情况下,与现有硬盘中文件版本号相同的文件不被下载。
先自己写了一个inf文件,其中信息包括将.ocx文件,以及相关的.dll文件打包,并下载到文件夹:\WINDOWS\system32,详细标注如下:
[version]   
signature="$CHICAGO$"
AdvancedINF=2.0

[DefaultInstall]   
CopyFiles=install.files
RegisterOCXs=RegisterFiles
[RInstallApplicationFiles]
CopyFiles=install.files
RegisterOCXs=RegisterFiles
[DestinationDirs]
install.files=11
[SourceDisksNames]   
1=%DiskName%,TestCAB.CAB,1

[Add.Code]
pcpos.ocx=pcpos.ocx
Comm.dll=comm.dll
pcpos.dll=pcpos.dll
TCPCLNT.dll=TCPCLNT.dll

[install.files]
pcpos.ocx=pcpos.ocx
Comm.dll=comm.dll
pcpos.dll=pcpos.dll
TCPCLNT.dll=TCPCLNT.dll

[SourceDisksFiles]
pcpos.ocx=1
Comm.dll=1
pcpos.dll=1
TCPCLNT.dll=1

[pcpos.ocx]
file-win32-x86=thiscab   
RegisterServer=yes   
clsid={719A1D6E-7099-4123-9D63-F0118AFF2D61}   
DestDir=11   
FileVersion=1,0,0,1

[Comm.dll]
file-win32-x86=thiscab   
RegisterServer=yes                        
DestDir=11   
FileVersion=1,0,0,1

[pcpos.dll]
file-win32-x86=thiscab   
RegisterServer=yes     
DestDir=11   
FileVersion=1,0,0,1

[TCPCLNT.dll]
file-win32-x86=thiscab   
RegisterServer=yes     
DestDir=11   
FileVersion=1,0,0,1

[RegisterFiles]   
%11%\pcpos.ocx

注释:
"thiscab" 是一个关键字,意指包含该INF的CAB文件。也可以从网上下载所需要的DLL文件,只要指定一个HTTP 网址即可,如:
file-win32-x86=http://www.mysite.com/mydir/NEEDED.DLL
关键字"file-win32-x86" 指定平台是 x86。
文件版本号可见属性。
"DestDir"指的是装载目录或者文件的地址: 11 指定为系统目录 WINDOWS/ /SYSTEM32;
"clsid" 指的是要安装控件的CLSID。

制作cab:
使用\WINDOWS\system32\iexpress.exe。
1)        选择“Create new Self Extraction Directive file”,点击下一步。
2)        选择“Create compressed files only(ActiveX Installs)”,点击下一步。
3)        点击Add,文件添加(pcpos.ocx,pcpos.dll,comm.dll,tcpclnt.dll),点击下一步。
4)        点击Browse,输入.CAB文件的存放地址(包含所取文件名),这里取TestCAB.CAB,并且要选中 “Store files using Long File Name inside Package”。点击下一步。
5)        选择“Don’t save”,一直点击下一步,直到完成。

注意:
如果控件已经在客户机注册,并且不是通过.CAB的方式注册,那么通过.CAB自动注册的时候,该控件将无法被更新。必须先手动删除该文件。

2. 对CAB文件进行数字签名
传说中数字签名之后就可以不出现提示而自动下载,所以也试试:
在\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin 中间有三个小工具,就用他们来实现数字签名。
1.Makecert.exe ---证书创建工具
2.Cert2Spc.exe ---发行者证书测试工具
3.Signcode.exe ---文件签名工具

步骤:
1)        makecert -ss name -n "CN=公司名" -sv d:\pos.pvk -r d:\pos.cer 其中sk-表示主题的密钥容器位置,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置,-sv 导出私钥文件(为了签名使用)。注意:这个时候会让输入三次密码,三次要完全一致。
2)        使用Cert2Spc生成spc发行者证书(可选):cert2spc d:\pos.cer c:\pos.spc
3)        双击signcode,不带参数会启动签名向导。先选择要签名文件,下一步,选择“自定义”,下一步,选择“从文件选择”,添加刚生成的pos.cer证书,下一步,选择刚生成的私钥pos.pvk,再下一步,可spc证书,再一直下一步。添加时间戳,在时间戳填入http: //timestamp.verisign.com/scripts/timstamp.dll TestCAB.CAB,再下一步完成。

这样就对CAB文件进行了签名,但是这个时候点击这个文件会发现证书不可用,原因是证书没有安转。文件属性->数字证书->详细信息-〉查看证书-〉安装证书,进入安装证书向导,存放区域选择“受信任的根证书颁发机构”,点击完成即可。

在客户端测试:
1)        加入证书,浏览器-〉工具-〉Internet选项-〉内容-〉证书-〉受信任的颁发机构-〉导入证书。
2)        在有证书的情况下,如果服务器没有加入“可信任网址”,提示下载的时候会显示证书所签内容,没有证书则提示为“未知”。
3)        如果服务器已加入“可信任网址”,并且已导入证书,则不提示任何信息,在用户毫无感觉情况下下载。如果没有加入“可信任网址“,控件可以正常下载但仍然不能正常使用,与是否签名无关。

四、问题:
1.是否可以不添加“可信任网址”。
2.数字签名的作用,授权证书与不授权证书的区别。

win10下OCX控件打CAB包web页面使用教程 在web 网页中如何打包ocx(ActiveX)为cab文件,win10下OCX控件打CAB包web页面使用教程 立即下载

相关推荐

DCWriter电子病历编辑器

专业的电子病历编辑器控件,完全C#开发,支持三级查房,半结构化,痕迹保留,续打,类似WORD所见即所得的自由文档编辑,医学表达式,级联模板等电子病历行业特定需求。

如何使用CABSDK打包OCX控件及网页测试控件

 一、CAB打包过程: (1) 下载CABSDK.EXE解压到一个文件夹下,并将BIN目录添加到系统变量”Path”上,注意使用“;”隔开。 (2) 准备好文件    将准备好的文件放在一个文件夹下面(例如files) install.inf :CAB安装配置文件 XX1.ocx:ActiveX控件 XX2.dll:动态链接库文件 install

hipeer的专栏 1052

IE8不能用老版本的如意报表插件的解决办法

IE8不能用老版本的如意报表插件的解决办法:升级一下浏览器插件:MRViewer.cab、MRLang.cab就行了

cab文件打包的ActiveX控件(转)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34037173的博客 383

EOSWebcamUtility-WIN1.0_canon_

CAnon driver to use with youe lofecdg

ZynqMP双核通信避坑指南:Linux驱动+裸机固件协同开发实录

本文详细解析了Xilinx ZynqMP芯片中APU与RPU双核通信的技术实现,重点介绍了通过IPI中断实现Linux驱动与裸机固件协同开发的实战经验。内容涵盖硬件寄存器配置、Linux驱动开发、RPU裸机程序编写以及双核调试技巧,为开发者提供了一套完整的工程化解决方案,帮助规避常见开发陷阱。

weixin_29168153的博客 126

Web发布cab文件打包的ActiveX控件总结[转]

http://hi.baidu.com/suofang/blog/item/3b0177f497612ed8f2d385df.html Web发布cab文件打包的ActiveX控件总结[转]2007年04月13日 星期五 下午 05:16这两天做控件的web发布遇到了几个问题,现总结如下。一、程序描述:程序环境:windows Xp sp2, ie

titicacahang的专栏 886

Tessent实战:网表扫描链插入全流程解析

本文详细解析了使用Tessent工具为网表插入扫描链(Scan Chain)的全流程。从前期环境配置、网表检查,到扫描链数量、时钟域等核心配置,再到执行扫描单元替换与连接,最后进行结果验证与文件输出。文章提供了关键命令与实用技巧,帮助工程师高效完成DFT设计,确保芯片可测试性。

hhh00的博客 747

在Win7 下 Web发布cab文件打包的ActiveX控件总结

    在先前转载的《浏览器插件之ActiveX开发(一)》~《浏览器插件之ActiveX开发(四)》中,已经介绍了Active空间的开发流程。但是在《浏览器插件之ActiveX开发(三)》中生成cab打包发布一直搞不下去。现在做个总结下。    打包activeX需要制作证书,具体用到makecert 、cert2spc 、signcode这三个VS提供的工具,工具在VS文件夹里面,以下制作过程...

xiatiancc的专栏 2796

从零到一:基于K375S主控的机械键盘优联无线化改造实战

本文详细记录了基于罗技K375S主控进行机械键盘优联无线化改造的全过程。从改造动机、核心原理与物料准备,到电路设计、PCB打样、焊接调试,逐步拆解了将优联技术集成到自定义机械键盘中的实战步骤。项目最终实现了低延迟、高稳定性且支持多设备连接的优联无线机械键盘,为DIY爱好者提供了高性价比的改造方案。

h0i1j2k3l的博客 601

Python实战:从中国气象局天擎平台自动化获取与处理雷达基数据

本文详细介绍了如何利用Python脚本实现从中国气象局天擎平台自动化获取与处理雷达基数据。通过环境搭建、安全认证、核心代码编写及工程化优化,构建了一个包含自动查询、批量下载、错误重试和格式转换的完整数据管道,旨在帮助气象水文领域的研究者与数据分析师从繁琐的手动操作中解放出来,高效管理海量数据。

ipfs8storage的博客 927
上一篇: Oracle表分区学习
下一篇: VMWare安装redhat9后上网的的问题
rainVSjava
博客等级 码龄15年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值