ActiveX之Web调用的打包、下载、安装和自动升级全攻略

发布时间:2012-05-03 23:15:12   来源:文档文库   
字号:

ActiveXWeb调用的打包、下载、安装和自动升级全攻略  

 

ActiveXWeb调用的打包、下载、安装和自动升级

 

1  打包。

参看http://blog.csdn.net/qcdn/archive/2008/03/07/2156655.aspx ActiveX控件打包成Cab置于网页中自动下载安装

2.网页调用脚本

anotherServer

      

       HEIGHT=0 WIDTH=0 ALIGN=LEFT

CODEBASE="http://zhanyonhu.129.tofor.com/test/evS1300.cab#Version=1,0,0,1">

      

 

 

其中,CODEBASE="evS1300.cab,这里可以填写绝对路径(全URL路径),也可以使用相对路径。

 

3 版本升级

inf安装文件中的相应文件的版本号修改,重新打包,放到服务器上,修改上面的网页脚本的#Version=1,0,0,2部分,使版本号更大,当再次访问网页时,就会自动下载了。

注意:CODEBASE="http://zhanyonhu.129.tofor.com/test/evS1300.cab#Version=1,0,0,1"> 这句,其中引号部分不能分隔开来,否则无法识别。我就是犯过这样的错误,当时检查了几个小时才发现。如果无法确定格式是否正确,可以把它复制到网页编辑器或者word中,如果像上面那样,被加上了超链接的下划线,就表示格式正确了。

  4。数字证书

需要花钱购买。不想花钱的话,有两种办法。

1)给用户提示,让用户按如下操作:

请按如下操作:

工具 —— internet选项 —— 安全 —— 受信任的站点 —— 点击站点按钮, 然后去掉对该区域的所有站点要求服务器验证复选框前面的勾

将该网站添加到区域中的下面,输入“http://zhanyonhu.129.tofor.com/”(这里改成你自己的网站的网址),然后点击添加按钮,确定确定

再打开该网页即可。

2)制作exe安装包。然后,在网页中提供一个按钮用户点击后就会下载这个exe文件,然后安装,安装中,注册activex控件。在网页脚本中调用activex控件中的一个方法,进而获得activex的版本号,如果版本号过低,可以提示用户下载安装最新版本,这样就实现自动升级。

 

附录:ActiveX控件打包成Cab置于网页中自动下载安装

http://blog.csdn.net/qcdn/archive/2008/03/07/2156655.aspx

[背景]

       做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该ActiveX控件(test.ocx)放在本机的%system%/system32下,然后运行DOS工具里面运行regsvr32 test.ocx命令进行注册。但如果真是这么去做的话,那么代表着你处于危险之中了,因为您是通过让用户自己去部署设置环境来达到你的目的,这就失去软件项目本身所存在的价值。那么面对这种情况,我们应该如何解决呢?聪明的你一定会很快就想到,我们可以使用户在客户端自动下载安装该ActiveX控件,这样一来即可以实现我们所想要的功能,又不需要用户自己去部署设置环境,这岂不是一举两得。

[必备条件]

一、用于将ActiveX控件进行打包并加数据鉴名的工具集:

makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥和公钥。

cert2spc.exe  cer格式证书转换成spc格式证书,即PKCS #7证书。

cabarc.exe   ocx打包成cab

signcode.exe 将证书签署到ocx上去。

chktrust.exe  检查签署证书后的ocx是否正确。

certmgr.exe 是管理证书用的。

 

二、用于进行打包用的ocx控件evS1300.ocx

三、用于查看ocx控件的工具ActvxDoc

[制作过程]

一、环境设置

1、下载makeCAB包,解压到本地目录(如E盘根目录),如查看到如图1所示的工具集,则表示已下载成功:

 

2、设置系统环境变量,右键单击我的电脑”à选择属性”à选择高级选项卡,打开如图2所示的系统属性面版块:

3、在系统属性版块里单击环境变量(N按钮,打开图3

4、选择系统变量(S里的新建(W按钮,打开编辑系统变量对话框,如图4所示,然后在变量值(V里加入“;E\makeCAB”

二、将用于打包的OCX控件放在E盘根目录下(本文档使用名为evS1300.ocx的控件来进行介绍),如图5所示,其中evS1300.ocx是本文档进行操作的控件对象,而mfc71.dllmsvcp71.dllmsvcr71.dll这三个文件通常是进行打包时一并打包的文件,但不是必须(推荐一起打包),其可在系统中的system32目录下找到,请自行准备。

三、ActiveX发布步骤

1、单击开始”à“动行(R”à输入“cmd”à回车à进入到操作的控件所在的目录,如图6所示:

2、创建PVK文件(私人密匙文件),在命令行中输入“makecert -sk evS1300 evS1300.pvk -n CN=XXXXXXX公司,然后回车,如图7所示:

 

3、创建CER文件(公司证书),在命令行中输入“makecert -sk evS1300.pvk evS1300.cer”,然后回车,如图8所示,若出现“Successed”提示,则会在E:\evS1300目录下生成evS1300.cer文件,如图9所示:

 4、创建SPC测试软件出版商证明书,在命令行中输入“cert2spc evS1300.cer evS1300.spc”,然后回车,如图10所示:

5、创建INF文件,用记录本编辑以下信息

1. [version]   

2. signature="$CHINA$"  

3. AdvancedINF=1.0  

4.   

5. [Add.Code]   

6. evS1300.ocx=evS1300.ocx   

7. msvcr71.dll=msvcr71.dll   

8. mfc71.dll=mfc71.dll   

9. msvcp71.dll=msvcp71.dll   

10.   

11. [evS1300.ocx]   

12. file=thiscab   

13. clsid={0440906E-9BD6-4F3E-B65A-39E1B339D9DA}   

14. FileVersion=1,0,0,0  

15. RegisterServer=yes   

16.   

17. [msvcr71.dll]   

18. file-win32-x86=thiscab   

19. RegisterServer=no   

20. DestDir=11  

21. FileVersion=7,10,3052,4  

22.   

23. [mfc71.dll]   

24. file-win32-x86=thiscab   

25. RegisterServer=no   

26. DestDir=11  

27. FileVersion=7,10,3077,0  

28.   

29. [msvcp71.dll]   

30. file-win32-x86=thiscab   

31. RegisterServer=no   

32. DestDir=11  

33. FileVersion=7,10,3077,0 

evS1300.inf的内容里,[version][Add.Code]项是必须的,[Add.Code]的键值项的多少取决于以下你所配制项的多少。[msvcr71.dll][mfc71.dll][msvcp71.dll]就是上面我所说不是必须的项,只要你想把msvcr71.dllmfc71.dllmsvcp71.dll包括在发布包里,那这么三项就必须写在inf里,而这三项的具体内容是固定的,可复制过去即可。最为关键的就是[evS1300.ocx]项,其中有clsidFileVersion就是evS1300.ocxclassIdversion,这要求必须一至,否我们发布出去的CAB包时不能在客户端自动更新下载安装。说到这里,那我们如何才能知道evS1300.ocx里面的classIdversion呢?我在上面的必备条件里介绍到有一个用于查看ocx控件的工具ActvxDoc,对,就是用它,我们双击这个文件运行它,此时可以看到图13所示的界面:

在图13的界面里,点击“File”à“Open…”,打开您所要查看的OCX控件,如图14所示:

打开了控件之后,我们在界面的右边部位“Class”的下拉框里选择“”就可以看到我们想要查找的FileVersionclassId,如图15所示:

6、创建CAB文件,在命令行中输入“cabarc -s 6144 n evS1300.cab msvcr71.dll mfc71.dll msvcp71.dll evS1300.ocx evS1300.inf”,然后回车,如图16所示:

7、使用Code Signing Wizard签署一个CAB文件,首先双击运行工具集里面的signcode.exe(或在命令行里直接输入“signcode”后回车),系统会弹出如图17所示的数字签名向导:

8、单击下一步(N按钮,来到图18所示,选择要进行数字签名的且已做成CAB包的文件evS1300.cab文件。

9、选择好CAB包后单击下一步(N按钮,在选择想要的签名类型里选择自定议(C并单击下一步(N按钮,如图19所示:

10、接下来单击从文件选择(F按钮,选择刚刚制作的evS1300.cer,如图20所示:

11、在图20中单击下一步(N按钮来到图21,然后在图21里选择“CSP中的私钥(K

12、在图21中单击下一步(N按钮,然后在图22中的散列算法中选择“shal”,并单击下一步(N按钮。

13、在证书路径中的证书中选择证书路径中的所有证书,包括根证书(C,在其它证书(可选)中选择包括在以下PKCS #7 证书(.p7b)文件中的证书(P):,并单击浏览(R…”按钮选择evS1300.spc文件,选择完后单击下一步(N按钮,如图23所示:

14、接下来在弹出的数据描述窗口中输入公司的名称和网址并单击下一步(N按钮,如图24所示:

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

(这里我提拱三个免费的代码签名时间戳地址)

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

Comodo:  http://timestamp.comodoca.com/authenticode

GeoTrust/TrustCenter: http://www.trustcenter.de/codesigning/timestamp

16、完成,在图25中单击下一步(N按钮便可来到数字签名向导的最后一步,即操作总览,如图26所示,单击完成按钮便可大功告成,如图27所示:

 

本文来源:https://www.2haoxitong.net/k/doc/ef812759312b3169a451a458.html

《ActiveX之Web调用的打包、下载、安装和自动升级全攻略.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式