前面介绍了数字证书的原理与制作:http://blog.csdn.net/jiangtongcn/article/details/13508365,下面来看一下ActiveX组件的打包。

我现在有一个ActiveX组件:fq.ocx,目的用于采集当前登录的QQ号码,采用vc mfc编写,当然您完全可以用其它技术编写。本ActiveX需要嵌入在网页中运行。

网上的关于打包这方面的东西太多了。这里我整理一下

一、编写用于安装cab包的inf文件

格式如下:

[version]
signature="$CHICAGO$"
AdvancedINF=2.0 [Add.Code]
XXXA.dll=XXXA.dll
atl90.dll=atl90.dll [atl90.dll]
file-win32-x86=thiscab
//告诉ie到哪里去得到这个dll,file一共包括三个部分,第一部分是file,这个永远都是这样的(至少目前来说);第二部分告诉声明支持的OS,win32表示windows,mac就是苹果MAC OX了;第三部分是CPU类型,比如说x86、 ppc (Power PC)、 mips或者alpha了
//其中“thiscab”是一个关键字,表示 CAB 包含此 DLL,也可通过指定一条绝对或相对路径,从一个 HTTP 位置下载所需的 DLL,
例如: file-win32-x86=http://www.mysite.com/mydir/NEEDED.DLL
FileVersion=9,00,30729,01
//说明了atl90.dll的版本号
DestDir=11
//它的值是dll将要存到本地硬盘的位置,如果它的值是10,则将dll放到/Windows或者/WinNT下;如果是11,则放到/Windows/System或者/WinNT/System32下;如果未指定任何 DestDir(典型情况),则代码安装在固定的 OCCACHE 目录中。
RegisterServer=yes [Polygon.dll]
file-win32-x86=thiscab
clsid={2885EE05-A26B-11D1-B49B-00C04F98EFE0}
//“clsid”是将要安装的控件的 CLSID
FileVersion=1,0,0,1
RegisterServer=yes

我的配置如下:

[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[Add.Code]
fq.ocx=fq.ocx

[fq.ocx]
file-win32-x86=thiscab
clsid={7734961F-2127-4645-A17A-618D912AA868}
FileVersion=1,0,0,1
RegisterServer=yes
DestDir=11

二、创建CAB文件

cabarc -s 6144 n fq.cab fq.inf fq.ocx

说明:

-s 6144:Reserve space in cabinet for signing (e.g. -s 6144 reserves 6K bytes) 在压缩文件中保留用于代码签名的空间

n:         Create new cabinet (e.g. cabarc n test.cab *.c app.mak *.h) 指定希望创建 CAB 文件

三、签名CAB文件

1、双击signcode.exe文件:

2、点击下一步选择被签名的CAB文件:

3、点击下一步,选择想要的签名类型为”自定义“:


4、点击下一步,选择”签名证书“,选择”从文件中选择“

5、点击下一步,选择私钥,选择”磁盘上的私钥文件“:

6、下一步输入私钥密码:

7、下一步选择散列算法,我选择sha1:

8、下一步使用默认选择即可,直接下一步:

9、接下来在弹出的"数据描述"窗口中输入公司的名称和网址并单击"下一步(N)"按钮(可以不输入)

10、现大部份工作都已完成,在接下来的一步当中是可选的操作,其作用只是为CAB加入时间戳,此步骤完全可以不做

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

11、到此,CAB文件的数字签名工作已经完成

四、在html页面中嵌入ActiveX:

<OBJECT ID="Fq1" WIDTH=800 HEIGHT=600
CLASSID="CLSID:7734961F-2127-4645-A17A-618D912AA868" CODEBASE="fq.cab" style="border:1px none white;">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
<PARAM NAME="Interval" VALUE="3000">
</OBJECT>

CODEBASE 也可以直接指向 OCX 或 DLL 文件,如:  
CODEBASE="http://lhsoft.net/mydir/fq.ocx#version=1,0,0,1"

以上步骤,如果您不会你可以手工注册ActiveX组件,然后采用”Microsoft ActiveX Control Pad“工具完成:

命令行注册ActiveX组件:regsvr32 fq.ocx

命令行取消注册ActiveX组件:regsvr32 /u fq.ocx

”Microsoft ActiveX Control Pad“可以帮您生成自动生成页面:

选择”Edit->Insert ActiveX Control...“:

选择您注册的控件名称:

随后弹出的界面帮助您完成ActiveX组件属性的设置:

关闭这些窗口,页面脚本出来了:

后面的我不说了,该修改的改改吧。

五、使您的产品的使用者(客户)下载和安装您制作的证书

您需要编写一个exe文件或者像我这样准备三个文件:

install_cer.bat是批处理文件调用certmgr.exe完成证书的安装,fq.cer就是要安装的证书,install_cer.bat内容如下:

certmgr /c /add fq.cer /s root

至此,全部完成。

Activex打包于发布完整版---ActiveX打包的更多相关文章

  1. Activex打包于发布完整版---微软证书制作

    众所周知,Activex组件没有进行有效的签名,在IE上无法安装的,除非你让用户手工开启“接收任何未签名的ActiveX”,这个很明显不现实.而组件签名需要证书,证书从哪里来,你可以选择付1000到3 ...

  2. 在Eclipse中用Maven打包jar包--完整版

    将本地的jar导入到maven本地库中 <!--手动加入库中 --><!-- mvn install:install-file -DgroupId=org.apache.Hadoop ...

  3. Unity3D打包 将发布的exe文件打包成一个Windows安装文件(自解压文件)

    Unity打包Standalone时 会出现一个exe文件和一个data文件夹 可是我们平常见过的软件 基本没有这种像这种结构的 一般都是一个安装文件,然后点击安装,选择路径,生成快捷方式- 本篇博客 ...

  4. visual studio 2012 的制作ActiveX、打包和发布

    开发环境是Vs 2012  Framework 4.0 源码和制作工具在文章最下边 一. ActiveX控件Demo 新建一个Window窗体控件库项目 在自动生成的UserControl1页面上添加 ...

  5. visual studio 2012 的制作ActiveX、打包和发布[转]

    开发环境是Vs 2012  Framework 4.0 源地址:http://www.cnblogs.com/li-peng/p/3455247.html 源码和制作工具在文章最下边 一. Activ ...

  6. .Net魔法堂:史上最全的ActiveX开发教程——发布篇

    一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程——开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包  C#开发的Activ ...

  7. ios外包公司—北京动点软件分享:IOS工程自动打包并发布脚本实现

    前言 IOS的开发过程中,当需要给测试人员发布测试包的时候,直接使用xcode来做的效率是非常低下的.尤其是当有一点小改动需要重新出包时,那简直是个折磨的人的工作.通过一番研究后,遂决定写一系列脚本, ...

  8. IOS工程自动打包并发布脚本实现

    http://blog.csdn.net/ccf0703/article/details/8588667 文章首发地址:http://webfrogs.me/2013/02/18/ios-automa ...

  9. 手把手教你使用Rollup打包📦并发布自己的工具库🔧

    DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师. 官方网站:devui.design Ng组件库:ng-devui(欢 ...

随机推荐

  1. w​x​F​o​r​m​B​u​i​l​d​e​r​初​体​验

    第一步 打开wxFormBuilder 修改工程信息并保存工程 Name: 工程名 File: 生成代码(.py)文件名 Code_generation: 生成代码类型 第二步 创建窗体 切换至for ...

  2. 读书笔记_Effective_C++_条款三十八:通过复合塑模出has-a或者is-implemented-in-terms-of

    如果说public是一种is-a的关系的话,那么复合就是has-a的关系.直观来说,复合就是在一个类中采用其他类的对象作为自身的成员变量,可以举个例子,像下面这样: class Person { pr ...

  3. Windows程序的打包,部署(vs项目打包vs2013)---ShinePans

    Windows 应用程序在开发完毕之后,怎样将程序打包并制作成安装程序在客户机上部署 是每一个windows应用程序开发完毕之后都必须面对的问题. 学习目标:                    部 ...

  4. 爱普生Me330 打印机改装连供系统计划

    Me330想改装连供得大家可以看一下,本文是我的亲生经历,现分享给大家,希望能给你们提供帮助,如果有不懂的地方可以联系我Email:  事先说明,我不买连供,也不卖这款机子,购买的话,请不要打扰我!& ...

  5. Animatepacker for cocos2d-x 3.0 解析

    AnimatePacker 是大神老G为cocos2d-x2.0做的一个很简洁的工具 近期 e 的新项目用的是最新的cocos2d-x 3.0,因此改进了对应的解析代码 说明: 1.工具还是用的之前的 ...

  6. Nginx+Memcached+Tomcat集群配置实践(Sticky Session)

    准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp <%@ page language="java" conten ...

  7. 玩转rocketMQ

    下载地址https://github.com/alibaba/RocketMQ 安装环境需要jdk,maven,git http://maven.apache.org/download.html

  8. Android Protobuf应用及原理

    前言 之前一直忙于移动端日志SDK Trojan的开源工作,已十分稳定地运行在饿了么团队App中,集成了日志加密和解密功能.哎呀,允许我卖个狗皮膏药,不用不知道,用了就知道,从此爱不释手,Trojan ...

  9. Android网络请求之OkHttp框架

    首先声明权限 <uses-permission android:name="android.permission.INTERNET"/> 在build.gradle中加 ...

  10. 【BZOJ】【2219】数论之神

    中国剩余定理+原根+扩展欧几里得+BSGS 题解:http://blog.csdn.net/regina8023/article/details/44863519 新技能get√: LL Get_yu ...