ActiveX插件如果想在Html中进行引用,必须先对插件ocx文件进行注册,即通过regsvr32将该控件注册到用户的操作系统里。在实际应用中,一般有两种方式来达到这个目的:

一、通过安装程序注册ActiveX

这种方式非常直观,就是制作一个简单的安装程序,该安装程序的任务就是将打包的ocx文件及其依赖文件解压复制到系统目标位置,然后再通过执行regsvr32命令将已复制到用户机器目标位置的ocx文件注册到系统中。当web页面中需要调用相应的ActiveX时,将在显著位置提示用户需下载指定的程序并运行安装。

实际很多应用程序在安装时都隐含地向系统注册了一些ActiveX的,例如QQ、飞信、播放器等,这样相应的web就更加灵活。不过,并不是所有的ActiveX插件都是以ocx文件呈现的,也可以是dll文件。

二、通过cab包由IE自动注册

能否在web页面需要引用ActiveX时由IE自动下载对应的插件并自动安装呢?当然可以。我们要做的就是要将ocx及其他文件打包成一个cab文件,然后将该cab文件放在web服务器上,并在web页面中通过<object …..  codebase=”xxx.cab#version=1,0,0,1” />的方式进行调用。

cab实际上是微软规定的一个特殊格式的压缩文件,制作cab包过程很简单:

1、 准备cabarc.exe工具,该工具可以在这里下载,也可以从微软下载;

2、 将ocx文件及依赖的其他文件放到同一个目录下,并在该目录下创建一个后缀为.inf的文件(文件名可任意取,一般与ocx文件同名,例如MyTestActiveX.inf),文件内容如下:

[version]
signature="$CHICAGO$"
AdvancedINF=2.0    [Add.Code]
MyTestActiveX.ocx=MyTestActiveX.ocx
mwhrf_bj.dll = mwhrf_bj.dll[MyTestActiveX.ocx]
file=thiscab
clsid={}
FileVersion=1,0,0,1
RegisterServer=yes
DestDir=11 [mwhrf_bj.dll]
file=thiscab
FileVersion=1,0,0,0
DestDir=10

a) signature="$CHICAGO$"表示这个.INF文件和Windows95或其后版本和Windows NT 4.0或其后的版本兼容。

b) [Add.Code]下面的内容用于定义该cab需要下载的各文件对应的定义区块,左边为文件名,等号右边为定义区域名,一般为易读均将定义的区域名与文件名相同。

c) 各文件的定义区域分别定义了该文件的各种属性:

file:表示该文件的获取位置,此处thiscab表示该文件就包含在该cab中;如果在其他位置而不在cab包中,则可以写上具体的位置如http://xxx.xxx.xxx/xx/mwhrf_bj.dll

clsid: 只有需要注册的ocx文件才设置这个属性,他的值就是改ocx的唯一classid,可以从项目的.idl文件中最下方查找;

FileVersion:文件版本号。一般将ocx文件的版本号视同为整个cab的版本号,在<object codebase=”xx.cab#version=1,0,0,1”中将用到该版本号。

DestDir:该文件需要COPY到目标机器的位置,11表示system32目录下,10表示windows目录下,……

有关inf文件的具体内容可参考以下文章相关部分,已经非常详细了:

OCX控件CAB打包手册及升级方法

INF文件的语法解说

创建 CAB 文件

VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

:如果考虑到终端用户的权限以及将ActiveX注册到什么位置(Current User或Machine),可参考

Non-Admin ActiveX Controls

3、运行如下命令进行打包:

cabarc" -s 6144 N "xxxxxx.cab" "xxxxx.ocx" "mwhrf_bj.dll" "xxxxxx.inf"

其中凡是需要打包的文件均要一一列出,inf文件放在最后(未测试是否必须最后)。文件路径均可以是绝对路径或相对路径,不一定非得是相同文件夹下。

命令执行后将自动生成.cab文件。

转载于:https://www.cnblogs.com/qguohog/archive/2013/01/24/2875524.html

浏览器插件之ActiveX开发(三)相关推荐

  1. 浏览器插件之ActiveX开发(二

    浏览器插件之ActiveX开发(二) 按照上文<浏览器插件之ActiveX开发(一)>的步骤,能开发一个基于MFC的简单的ActiveX控件.不过在实际操作中还是会遇到一些问题.由于对CO ...

  2. Xtreme Suite Pro使用教程:浏览器插件之ActiveX开发

    浏览器插件之ActiveX开发(一) 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务 ...

  3. 浏览器插件之ActiveX开发

    浏览器插件之ActiveX开发(一) 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务 ...

  4. 开发浏览器插件/扩展应用开发

    今天尝试了下开发浏览器扩展,在Microsoft Edge浏览器上测试的,其他的也类似. 目录: 配置: // manifest.json{"name": "ADKILL ...

  5. python 开发浏览器插件,利用firebreath开发跨浏览器插件

    工程中生成了相应的npapi和activex的代码,主要修改对应项目名称目录下的文件即可. 其中***API.cpp和***API.h中定义了相关的示例方法,比如echo方法,我们可以直接编译.对应目 ...

  6. 30分钟开发一款抓取网站图片资源的浏览器插件

    前言 由于业务需求, 笔者要为公司开发几款实用的浏览器插件,所以大致花了一天的时间,看完了谷歌浏览器插件开发文档,在这里特地总结一下经验, 并通过一个实际案例来复盘插件开发的流程和注意事项. 你将收获 ...

  7. 浏览器插件的开发学习

    今天闲来无事,想到公司在开发浏览器插件的问题上比较纠结,所以我整理了下,以便以后用到可以快速上手 谷歌浏览器插件是一种小型的用于定制浏览器体验的程序.通过插件,可以自定义浏览器的一些行为来适应个人的需 ...

  8. h5开发必备工具之草料二维码浏览器插件

    h5开发必备工具之草料二维码浏览器插件 做h5开发,的一个重点是如何适配手机,那么如何让你敲的代码可以在你手机上简单看到呢. 原理很简单,就是将你的电脑变成服务器,发射wifi给手机进行连接.然后在你 ...

  9. mac 下基于firebreath 开发多浏览器支持的浏览器插件

    mac 下基于firebreath 开发多浏览器支持的浏览器插件 首先要区分什么是浏览器扩展和浏览器插件;插件可以像本地程序一样做的更多 一. 关于 firebreath http://www.fir ...

  10. 开发一个 Chrome 浏览器插件,拢共分几步?

    市面上浏览器有很多,比如 IE.Edge.火狐.Safari 等,但市场占有率第一的永远只有一个 -- Chrome. 之所以如此,很大一部分原因是 Chrome 丰富的插件库.我们在使用浏览器时,免 ...

最新文章

  1. 最喜欢随机森林?周志华团队DF21后,TensorFlow开源决策森林库TF-DF
  2. 人工智能浪潮褪去,冲刺IPO成AI企业生存关键?
  3. 禁止Chrome浏览器缓存
  4. 网站优化期间有哪些细节需要注意?
  5. 马哥linux 培训第一周作业
  6. 涅槃重生的下一个超级风口:8本书助你赢在未来
  7. PHP 7.3 比 PHP 7.0 快 22%,即将进入特性冻结阶段
  8. Linux内核发包软件,pktgen--内核态发包工具
  9. vue设置右边距_数控CNC雕刻机使用系列之二: 维宏软件的参数设置
  10. 计算机械效率的简便公式,机械效率公式
  11. 面对互联网寒冬裁员潮,HR都在干什么?
  12. win10 u盘 修复计算机,怎么用u盘修复windows10专业版系统
  13. 制造商朝DOE LED功效目标迈进稳步前进
  14. 木瓜移动荣获金茶奖2021年度游戏服务企业称号
  15. 应用安全系列之二十九:密码管理
  16. 云闪付华为P9指纹_超强指纹识别体验:华为P9指纹还能这么玩
  17. 分布式专题——接口幂等性实战
  18. Symbian OS 精要
  19. c语言负数与正数判断大小,c语言编程,输入一些整数,判断其中正数与负数的个数,并分别求出正数与负数的平均值...
  20. 数据库——MySQL概述

热门文章

  1. 【多任务】多任务学习在推荐算法中的应用
  2. 百度大脑EasyDL专业版挑战赛正式开启,挑战没有做不到的模型!
  3. 笔记 | 如何在Python下调用Linux的Shell命令?
  4. 什么是Adam/ReLU/YOLO?这里有一份深度学习(.ai)词典
  5. 机器学习面试- Scikit-learn
  6. 什么是Windows Azure
  7. 独具匠心的好书:评《构建高性能Web站点》
  8. 机器学习实战系列(五):SVM支持向量机
  9. 程序员的浪漫:教你如何用MATLAB向女生表白
  10. htcvr设备计算机配置,HTC Vive电脑配置要求多高?享受VR虚拟现实还要一台好电脑!...