activex打包
http://www.cnblogs.com/weiwin/p/4493835.html
activeX 打包
原文 http://www.docin.com/p-409284488.html
CAB打包文档说明
- 文档目的
本文档的目的在于说明将ocx和dll以及相关的文件打包成一个CAB包,以便在网页下调用ocx控件时免去手工将dll和其他一下文件拷贝到客户机,方便了现场施工。
- 打包工具
打包工具有makeCAB

其中,ActvxDoc.exe用来查看ocx的CLSID,signcode.exe用来对打包好的cab进行数字签名,其它的用于生成数字认证文件。
- 打包过程
- 将打包工具makeCAB里面的所有文件放到系统文件夹system32目录下
- 新建一个文件夹,将所有要打包进cab的文件放在该新建的文件夹下
- 编写inf安装文件。新建一个txt文本文档,并将其改名为*.inf安装文件,按照以下格式编写inf文件。(打包时注意去除红色的字)
[version]
signature="$CHINA$"
AdvancedINF=1.0
[Add.Code] --该段为所打包的文件
logocx.ocx=logocx.ocx
MFC42D.DLL=MFC42D.DLL
MFCO42D.DLL=MFCO42D.DLL
MSVCP60D.DLL=MSVCP60D.DLL
MSVCRTD.DLL=MSVCRTD.DLL
pssts.ini=pssts.ini
[logocx.ocx] --打包的ocx
file=thiscab
clsid={5710EB41-87CE-4BF8-9A24-F520556714BB} --ocx的序列号
FileVersion=1,0,0,1
RegisterServer=yes
--以下是其他的相关文件
[MFC42D.DLL]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11 --存放目录为system32
FileVersion=7,10,3052,4
[MFCO42D.DLL]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=7,10,3052,4
[MSVCP60D.DLL]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=7,10,3052,4
[MSVCRTD.DLL]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11
FileVersion=7,10,3052,4
[pssts.ini]
file-win32-x86=thiscab
DestDir=11
- 编写运行的bat文件。新建一个txt文本文档,并将其改名为*.bat运行文件,按照以下格式编写bat文件。(打包时注意去除红色的字)
--生成数字签名文件*.pvk
--logocx是文件路径
makecert -sk logocx logocx.pvk -n CN=迪科电力
--生成数字签名文件*.cer
makecert -sk logocx.pvk logocx.cer
--生成数字签名文件*.spc
cert2spc logocx.cer logocx.spc
--打包cab文件,其中【MFC42D.DLL MFCO42D.DLL MSVCP60D.DLL MSVCRTD.DLL pssts.ini logocx.ocx logocx.inf】为要打包进cab中的文件,注意要包含上一步编写的inf文件
cabarc -s 6144 n logocx.cab MFC42D.DLL MFCO42D.DLL MSVCP60D.DLL MSVCRTD.DLL pssts.ini logocx.ocx logocx.inf
--运行数字签名程序
signcode.exe
- 运行编写好的bat文件。
将所有需要打包的文件和上两步编写好的inf、bat放在同一个目录下,双击bat文件运行,首先生成数字签名所需要的pvk、cer、spc文件,然后打包成cab,最后运行signcode.exe程序进行数字签名。(以上步骤为双击bat文件后自动生成的)

在signcode界面中,

点击【下一步】,点击【浏览(R)…】,更改文件类型为*.cab,选中刚生成的cab文件,点击【打开】,然后点击【下一步】,

选择【自定义】,然后点击【下一步】,

点击【从文件选择】,打开刚才生成的cer文件,点击【下一步】

首先选择【磁盘上的私钥文件】,点击浏览选择刚才生成的PVK文件,然后选择【CSP中的私钥】,在【密钥容器】中选择*.pvk(为刚才选择的pvk),点击【下一步】。

选中【sha1】,然后点击【下一步】

选中【包括在以下PKCS#7(.p7b)文件中的证书(P)】,点击浏览,选择刚才生成的spc文件,点击【下一步】

然后一直点击【下一步】直到数字签名完成。
- 版本控制
对.cab包进行版本更新,使用户能够打开浏览器时自动下载更新.cab包,需进行如下处理。
- 对ocx控件的版本进行更新。方法如下:打开源代码,找到资源文件,修改版本信息,如下图:

修改后重新生成ocx文件。
- 对打包时的.inf文件中ocx中的版本信息进行更新,举例如下:
[logocx.ocx] --打包的ocx
file=thiscab
clsid={5710EB41-87CE-4BF8-9A24-F520556714BB} --ocx的序列号
FileVersion=1,0,0,1
RegisterServer=yes
修改FileVersion=1,0,0,3
- 页面加载控件时添加版本信息,如下列红色字体所示:<object id="slipprint" style="display:none" width=30 height=30 classid="CLSID: 5710EB41-87CE-4BF8-9A24-F520556714BB" codebase="../activeX/DicEPSON532.cab#version=1,0,0,3">
- 注意事项
虽然已对打包好的cab进行了数字签名,但是该签名并未在网上注册,在客户端仍然需要设为信任站点。
6.如果安装不成功可以安装 depends 看看你的插件缺少什么dll,自行去补充
重要提示
平台工具集 Visual Studio 2013 - Windows XP (v120_xp)
relase 编译 多线程 选mt
所在的“项目”=>>“属性”=>>“配置属性”=>>“C/C++”=>>“预处理器”=>>“预处理定义” 移除_DENUG
activex打包的更多相关文章
- 将ActiveX打包成CAB发布的注意事项
1.在实现ActiveX组件时,注意VS必须使用管理员身份运行,否则会提示不成功 2.在解决方案中添加一个安装项目 a.在View中点击文件系统,添加对ActiveX项目的输出 b.注册表HKEY_C ...
- Activex打包于发布完整版---ActiveX打包
前面介绍了数字证书的原理与制作:http://blog.csdn.net/jiangtongcn/article/details/13508365,下面来看一下ActiveX组件的打包. 我现在有一个 ...
- activeX 打包
原文 http://www.docin.com/p-409284488.html CAB打包文档说明 文档目的 本文档的目的在于说明将ocx和dll以及相关的文件打包成一个CAB包,以便在网页下调用o ...
- Activex打包于发布完整版---微软证书制作
众所周知,Activex组件没有进行有效的签名,在IE上无法安装的,除非你让用户手工开启“接收任何未签名的ActiveX”,这个很明显不现实.而组件签名需要证书,证书从哪里来,你可以选择付1000到3 ...
- 配置ActiveX控件在网页中下载安装
先检查客户端浏览器是否安装了ActiveX控件,如果没有安装ActiveX,就需要先给浏览器提示下载并允许安装.否则就直接使用该ActiveX控件.我们可以使用CodeBase来满足我们的要求:下面是 ...
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...
- ActiveX控件开发
VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程 开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是 ...
- atl控件发布打包<转>
http://www.cnblogs.com/gengaixue/archive/2010/08/13/1799112.html ActiveX打包与发布 在VS2005或VS2008安装后发现路径* ...
- C++基于ATL工程编写ActiveX控件步骤
参考网址: https://blog.csdn.net/whui19890911/article/details/8896554 开发环境:VS2010 开发工程:C++ATL项目 开发目的:创建Ac ...
随机推荐
- ORA-12154,TNS错误解决办法
- QtAV的编译方法
1--编译准备 QtAV的安装编译总指导说明:https://github.com/wang-bin/QtAV/wiki/Build-QtAV QtAV的源代码:https://github.com/ ...
- HashMap源码分析(基于JDK1.6)
在Java集合类中最常用的除了ArrayList外,就是HashMap了.本文尽自己所能,尽量详细的解释HashMap的源码.一山还有一山高,有不足之处请之处,定感谢指定并及时修正. 在看Hash ...
- Ambari和YARN的Capacity调度器,安装过程
用Spark测试YARN的资源池,测试过程中发现很多时候爆资源不够: 于是添加机器,专门用于跑spark:首先是ssh不通,原来错把71的id_psa.put文件拷贝到64上面:后来ssh通了,amb ...
- Java 引用类型数组
引用类型变量可以使用类.接口或数组来声明. 数组引用变量是存放在栈内存(stack)中,数组元素是存放在堆内存(heap)中,通过栈内存中的指针指向对应元素在堆内存中的位置来实现访问. public ...
- 使用readelf和objdump解析目标文件 ***
引言 本文是对程序员的自我修养:链接.装载与库中第3章的实践总结(和结构相关的示意图都是用Gliffy Diagrams画的
- SizeGripStyle 枚举
成员名称 说明 Auto 需要时会自动显示大小调整的箭头图标 Hide 大小调整的箭头图标被隐藏. (SizeGripStyle=Hide,禁用拖动窗体右下角可以改变大小的功能) Sho ...
- Dynamics CRM early binding and late binding
The key advantage of late bound entity classes is that customer entities and attributes not avaliabl ...
- 移植OpenWrt到CuHead Pro WiFi
移植OpenWrt到CuHead Pro WiFi Posted by: zou, baozhu , 三月 13, 2014 CuHead Pro是一款路由器开发板,下面是开发板的配置信息. 名称 型 ...
- DVWA平台v1.8-SQL注入(low级别)
代码 <?php if(isset($_GET['Submit'])){ // Retrieve data $id = $_GET['id']; $getid = "SELECT fi ...