ActiveX控件打包、签名、嵌入详解

前言

在我们的一个项目中,使用到了大华网络监控摄像头枪机,网络上下载了其ActiveX插件,但是发现其所提供的类库没有打包处理。这就导致我们每次给用户安装的时候,均需要手动注册一下。比较要命的是,一旦用户电脑上的摄像头黑屏或者不能用的时候,我们都需要远程指导用户怎么操作,相当麻烦。所以,遂决定将这些类库打包一下,以便实现自动无值守安装。

这里先将工具列举一下:

iexpress.exe  用于CAB打包

signtool.exe  用于附加数字签名

makecab.exe 用于CAB打包

http://www.ca365.com 用于申请免费数字证书

下面让我们开始进行制作。

第一步,准备Inf配置文件。

首先,新建一个后缀名为 dahua.inf 的文件并打开,输入如下内容并保存:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[version] 
signature="$CHICAGO$" 
AdvancedINF=2.0 
   
[DefaultInstall] 
CopyFiles=files 
RegisterOCXs=RegisterFiles 
   
[DefaultUninstall] 
cleanup=1 
Delfiles=files 
UnRegisterOCXs=RegisterFiles 
   
[SourceDisksNames] 
1 = %DiskName%,"dahua.cab",1 
   
[SourceDisksFiles] 
RealPlayX.ocx=1 
dhnetsdk.dll=1 
ssleay32.dll=1
MP3Decoder.dll=1
libeay32.dll=1
jpegdec.dll=1
IvsDrawer.dll=1
dllmpeg4.dll=1
dllh264.dll=1
DllDeinterlace.dll=1
dhplay.dll=1
dhdvr.dll=1
DhDecode.dll=1
dhconfigsdk.dll=1
AmrDll.dll=1
AACDecoder.dll=1
   
[RegisterFiles] 
%11%\dahua\RealPlayX.ocx 
   
[DestinationDirs] 
files=11, dahua 
   
[files] 
RealPlayX.ocx=RealPlayX.ocx
dhnetsdk.dll=dhnetsdk.dll
ssleay32.dll=ssleay32.dll
MP3Decoder.dll=MP3Decoder.dll
libeay32.dll=libeay32.dll
jpegdec.dll=jpegdec.dll
IvsDrawer.dll=IvsDrawer.dll
dllmpeg4.dll=dllmpeg4.dll
dllh264.dll=dllh264.dll
DllDeinterlace.dll=DllDeinterlace.dll
dhplay.dll=dhplay.dll
dhdvr.dll=dhdvr.dll
DhDecode.dll=DhDecode.dll
dhconfigsdk.dll=dhconfigsdk.dll
AmrDll.dll=AmrDll.dll
AACDecoder.dll=AACDecoder.dll
      
  
[RealPlayX.ocx]
file-win32-x86=thiscab
clsid={30209FBC-57EB-4F87-BF3E-740E3D8019D2}
DestDir=11
FileVersion=1,0,0,1
RegisterServer=yes
[Strings] 
DiskName = "dahua" 

最开始一般是[Version]区,这里不用管,保持默认内容就行。

然后是[DefaultInstall]区,表明文件拷贝的地方,我们这里为[files]区下的所有文件,并将[RegisterFiles ]区下的文件进行注册。

然后是[RegisterFiles]区,表明注册System32\dahua文件夹下的RealPlayX.ocx

然后是[DestinationDirs]区,11表明放到  Windows\System或者\WinNT\System32下,dahua则是创建的子级文件夹。

最后是[RealPlayX.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的版本号。

第二步,制作CAB包。

打开iexpress,按照下面的顺序来一一进行:

注意:在进行第五步的时候,请注意文件夹里面一定要放置makecab.exe,否则会导致生成不成功。

所有步骤进行完成后,会得到一个dahua.cab包。

第三步,对CAB包进行签名。

首先,我们需要申请一个数字签名证书。

打开http://www.ca365.com/网站,点击免费证书下的“用表格申请证书”选项,这时会弹出“申请免费证书“页面。其中,“识别信息”可以随意填写,“证书用途”要选择“代码签名证书”,“加密服务提供”是用微软提供的“Microsoft Strong Cryptographic Provider”,其他默认,点“提交”即可。最后点击”下载证书“就可以把生成的”大华网络监控.cer”下载到自己的电脑中。

然后,我们需要将数字签名证书导入到IE中。

打开IE浏览器,打开菜单,点选”工具“按钮,弹出下拉菜单,选择”Internet选项“,切换到”内容“选项卡,点击”证书“按钮,点击”导入“按钮,导入刚刚生成的数字签名证书。导入成功后,我们就可以看到相关证书信息了。

之后,打开signtool.exe,在命令行窗口下输入signtool.exe  signwizard来启动可视化安装界面。按照如下图示一步一步进行:

注意,其中一步需要填写”给数据盖时间戳“,我们将”将时间戳添加到数据中“ 选中,然后在时间戳服务URL栏写入:

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

做完这一步,我们就可以得到一个完整的数字签名包。

第四步:嵌入到网页中使用。

打开网页,在需要嵌入的地方写入如下代码:

   1:  <object id="AV_RealPlayX" style="width:100%; height:100%;" 
   2:                      classid="CLSID:30209FBC-57EB-4F87-BF3E-740E3D8019D2"                     
   3:                      codebase="DaHua.CAB#version=1,0,0,1">
   4:                      <param name="_Version" value="65536" />
   5:                      <param name="_ExtentX" value="22357" />
   6:                      <param name="_ExtentY" value="16589" />
   7:                      <param name="_StockProps" value="0" />
   8:   </object>

其中param根据你的activex的控件的需要进行配置。尤其需要注意classid和codebase这两个属性,只要配置对了就行。

第五步:IE权限设置。

由于Activex只能运行在支持Activex的浏览器中,尤其是IE中,所以这里我们需要对IE浏览器进行下设置。

打开IE,点击”工具“菜单,点击”Internet选项“,在弹出的窗口中,选择”安全“标签,切换到”可信站点“,点击”自定义级别“,将”对标记为可安全执行脚本的ActiveX控件执行脚本“设为”启用“;将”对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本“设为”启用“;将”下载未签名的ActiveX控件“设为”提示“;将”下载已签名的ActiveX控件“设为”启用“即可。

然后点击”站点“按钮,将”http://localhost“添加到可信列表,并去掉勾选”对该区域的所有站点要求服务器验证(https:)“。

最后重启浏览器。

第六步:设置完毕,运行。

设置完毕后,打开浏览器,输入网址,运行:

首先,我们可以成功看到视频效果:

然后打开System32文件夹,我们可以看到一个名称为dahua的文件夹被建立,并且所有的dll和ocx都被放入了进来。

好了,就是这些,希望对你有用。谢谢。

添加信任列表

最后需要说明,运行此Activex插件需要将当前网址添加到信任列表。请将如下的脚本保存为vbs文件,然后运行即可。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
on Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\" _
    & "ZoneMap\Ranges\Range1"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
strValueName = "http"
dwValue = 2
strValueNameEx = ":Range"
dwValueEx="123.7.63.174"
objReg.SetStringValue  HKEY_CURRENT_USER, strKeyPath, strValueNameEx, dwValueEx
objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

转载于:https://www.cnblogs.com/andyliu1988/p/5956394.html

ActiveX控件打包、签名、嵌入详解相关推荐

  1. ASP中利用OWC控件实现图表功能详解[zz]

    ASP中利用OWC控件实现图表功能详解 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图, ...

  2. wxss 点击样式_微信小程序点击控件修改样式实例详解

    微信小程序点击控件修改样式实例详解 现在要在微信小程序中实现点击控件修改样式,如下: 微信小程序中不支持直接操作dom,要实现这种效果,我们需要通过设置data,然后利用数据和界面的双向绑定来实现它. ...

  3. android组件用法说明,Android第三方控件PhotoView使用方法详解

    Android第三方控件PhotoView使用方法详解 发布时间:2020-10-21 15:06:09 来源:脚本之家 阅读:74 作者:zhaihaohao1 PhotoView的简介: 这是一个 ...

  4. android禁止下拉刷新,Android开发之无痕过渡下拉刷新控件的实现思路详解

    相信大家已经对下拉刷新熟悉得不能再熟悉了,市面上的下拉刷新琳琅满目,然而有很多在我看来略有缺陷,接下来我将说明一下存在的缺陷问题,然后提供一种思路来解决这一缺陷,废话不多说!往下看嘞! 1.市面一些下 ...

  5. ASP中利用OWC控件实现图表功能详解

    在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图,簇状柱型图,折线图的使用方法.OWC的更 ...

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

    From: http://www.iteye.com/topic/110834 makeCAB.rar (188.5 KB) [背景] 做过ActiveX控件的朋友都知道,要想把自己做的ActiveX ...

  7. ActiveX控件打包成Cab实现浏览器自动下载安装

    前言 我们在浏览器中使用我们自己的一些OCX,或者是DLL这一类的文件,在X86的机器上需要我们手动将这些文件拷贝到Windows/System32 文件夹下面去,然后通过Dos命令regsvr32 ...

  8. ActiveX控件打包成Cab置于网页中自动下载安装 (收藏未实践测试)

    from http://blog.csdn.net/htqlhy/article/details/7937897?locationNum=12 [背景]         做过ActiveX控件的朋友都 ...

  9. ActiveX控件打包成Cab置于网页中自动下载安装(转载)

    原文出自http://www.iteye.com/topic/110834 [背景] 做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必 ...

最新文章

  1. [CentOS7] 常用工具 之 差异备份工具 rdiff-backup
  2. 【阿佳说】打造抖音个人IP实现利润翻倍
  3. java ftp commonsnet_用Java下载整个FTP目录(Apache Net Commons)
  4. sublime快捷键收藏
  5. ffmpeg编译 MingW + MSYS
  6. springboot 上传文件_基于SpringBoot的文件上传
  7. 王思聪又双被限制消费了!
  8. php的ob_flush和flush(转)
  9. C ++中的初始化程序列表– std :: initializer_list
  10. 8.4 bert的压缩讲解 意境级
  11. poj 1823 Hotel 线段树,注意懒惰标记,不标记就会超时滴
  12. 专注于钢铁行业电子商务的服务网站,钢铁行业的网上贸易市场 一起成长
  13. 64位系统装32和64位oracle,64位系统安装32位Oracle developer
  14. JQuery dataTable 扩展+Ajax Post,Get一些基本操作(二)
  15. 7-95 深入虎穴 (树的深搜)
  16. Window系统 cd命令
  17. 如何寻找基因的启动子——NCBI版
  18. 【PID】数字式 PID 控制算法、程序结构
  19. 2021,我的巨变之年
  20. TCP拥塞控制和PID控制器

热门文章

  1. 爬虫入门,带你用30行代码爬取高清美女写真,附安装包+源码
  2. STC89c52定时器的使用以及相关案例
  3. 谷歌卫星地图下载器有哪些那款好用
  4. ZR859 坤坤的篮球场 (单调队列)
  5. 铃声多多 v8.7.40.1
  6. 计算机网络学习笔记<一>|工作必备|银行科技岗面试|内附八股面经|秋招提前批冲冲冲
  7. three.js实现管道流光
  8. 水利行业评中级职称业绩要求有哪些?帮你分析
  9. 肇庆高考成绩查询2021,2021肇庆市地区高考成绩排名查询,肇庆市高考各高中成绩喜报榜单...
  10. android 删除号码恢复,手机联系人误删了怎么恢复