### 手把手教你学习ActiveX开发 随着信息技术的飞速发展,ActiveX技术因其独特的优点在Web应用领域占据了一席之地。本篇文章将基于提供的文件信息来深入探讨ActiveX开发的相关知识点,包括如何制作CAB文件、如何进行签名等。 #### ActiveX概述 ActiveX是一种由微软公司开发的技术标准,它允许开发者创建可重复使用的软件组件,这些组件可以在多个应用程序之间共享。通过使用ActiveX组件,开发者能够构建功能丰富且交互性强的应用程序,尤其是在Web浏览器环境中,这种技术非常实用。 #### CAB文件制作 CAB文件是压缩文件的一种形式,通常用于存储ActiveX控件(.OCX或.DLL文件)。它被广泛应用于Web页面中加载ActiveX控件时。CAB文件可以有效减少文件大小,提高下载速度,并支持增量更新等功能。 ##### 制作步骤 1. **选择工具**:你需要一个工具来创建CAB文件,例如`iexpress.exe`。 - **启动iExpress**:打开命令行工具,运行`iexpress.exe`。 - **选择模式**:选择“创建新的自解压指令文件”。 - **压缩模式**:选择“仅创建压缩文件(ActiveX安装)”。 - **添加文件**:选择要包含在CAB文件中的文件,如`pcpos.ocx`, `pcpos.dll`, `comm.dll`, `tcpclnt.dll`。 - **设置目标路径**:指定CAB文件的保存位置,例如`TestCAB.CAB`。 2. **配置INF文件**: - **创建INF文件**:在CAB文件中包含一个`.INF`文件,该文件定义了如何安装和注册控件。 - **定义安装过程**:通过设置不同的段落来定义安装过程,如`[Version]`, `[DefaultInstall]`, `[RInstallApplicationFiles]`等。 - **文件列表**:列出所有要复制到系统中的文件及其版本信息。 - **注册控件**:对于每个OCX或DLL文件,指定其注册方式、目标目录等属性。 3. **测试CAB文件**: - 在Web页面中引用CAB文件,使用`OBJECT`标签嵌入控件,并确保`codebase`属性正确指向CAB文件的位置。 - 测试控件是否能够成功加载并运行。 #### 签名与安全 为了增强安全性,ActiveX控件在部署前需要进行数字签名。签名过程涉及到使用数字证书对控件进行加密处理,确保其来源可信且未被篡改。 ##### 签名步骤 1. **获取数字证书**:可以从受信任的认证机构(CA)购买数字证书,或者使用自签名证书进行测试。 2. **签名工具**:使用如`signtool.exe`这样的工具对OCX或DLL文件进行签名。 - **运行签名工具**:在命令行中输入`signtool sign /f your_certificate.pfx /p your_password your_ocx_or_dll_file.ocx`。 - 其中`your_certificate.pfx`为你的证书文件,`your_password`为证书的密码。 3. **验证签名**:使用`signtool verify`命令检查签名的有效性。 #### 遇到的问题及解决方法 根据提供的部分描述,存在两个主要问题: 1. **CAB文件无法自动安装**: - 确保HTML页面中的`OBJECT`标签正确设置了`codebase`属性。 - 检查浏览器的安全设置,确保已将网站添加到受信任站点列表中。 2. **安装后系统32目录下找不到文件**: - 检查INF文件中的`DestDir`属性是否正确设置为目标目录。 - 确认浏览器的安全策略允许从该网站下载和安装控件。 #### 结论 ActiveX技术虽然在现代Web开发中不如从前流行,但在特定场景下仍然有着不可替代的作用。通过了解CAB文件的制作和签名流程,你可以更好地掌握ActiveX控件的部署与使用技巧。希望本文能为你提供有用的指导和支持。
程序环境: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 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
- 粉丝: 5
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于NetCore3.1和Vue的系统管理平台.zip
- (源码)基于Arduino的蓝牙控制LED系统.zip
- SwitchResX 4.6.4 自定义分辨率 黑苹果神器
- (源码)基于Spring Boot和MyBatis的大文件分片上传系统.zip
- (源码)基于Spring Boot和MyBatis的后台管理系统.zip
- (源码)基于JDBC的Java学生管理系统.zip
- (源码)基于Arduino的教室电力节能管理系统.zip
- (源码)基于Python语言的注释格式处理系统.zip
- (源码)基于C++的嵌入式文件系统管理工具.zip
- (源码)基于JavaFX框架的动画与界面管理系统.zip