一、ActiveX发布步骤
1、单击"开始"-->"运行(R)"-->输入"cmd"-->回车-->进入到操作的控件所在的目录;
2、创建PVK文件(私人密匙文件),在命令行中输入"makecert -sk demo demo.pvk -n CN=XXXXXXX公司",然后回车;
3、创建CER文件(公司证书),在命令行中输入"makecert -sk demo.pvk demo.cer",然后回车,如图8所示,若出现"Successed"提示,则会在E:/ demo目录下生成demo.cer文件;
4、创建SPC测试软件出版商证明书,在命令行中输入"cert2spc demo.cer demo.spc",然后回车;
5、创建INF文件,用记录本编辑以下信息:
[version] signature="$CHINA$" AdvancedINF=2.0 [Add.Code] Polygon.dll=Polygon.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
6、创建CAB文件,在命令行中输入"cabarc -s 6144 n demo.cab atl90.dll Polygon.dll demo.inf",-s 选项表示在压缩文件中保留用于代码签名的空间,n命令指定希望创建 CAB 文件,然后回车;
7、使用Code Signing Wizard签署一个CAB文件,首先双击运行工具集里面的signcode.exe(或在命令行里直接输入"signcode"后回车);
8、单击"下一步(N)"按钮,选择要进行数字签名的且已做成CAB包的文件demo.cab文件;
9、选择好CAB包后单击"下一步(N)"按钮,在选择想要的签名类型里选择"自定议(C)"并单击"下一步(N)"按钮;
10、接下来单击"从文件选择(F)"按钮,选择刚刚制作的demo.cer;
11、在图20中单击"下一步(N)",然后选择"CSP中的私钥(K)";
13、在"证书路径中的证书"中选择"证书路径中的所有证书,包括根证书(C)",在"其它证书(可选)"中选择"包括在以下PKCS #7 证书(.p7b)文件中的证书(P):",并单击"浏览(R)..."按钮选择demo.spc文件,选择完后单击"下一步(N)"按钮;
14、接下来在弹出的"数据描述"窗口中输入公司的名称和网址并单击"下一步(N)"按钮;
15、现大部份工作都已完成,在接下来的一步当中是可选的操作,其作用只是为CAB加入时间戳,此步骤完全可以不做,VeriSign: http://timestamp.verisign.com/scripts/timstamp.dll;
16、完成,在图25中单击"下一步(N)"按钮便可来到数字签名向导的最后一步,即操作总览,如图26所示,单击"完成"按钮便可大功告成;
17、创建*.htm文件在web页上嵌套入签名的CAB文件:
<BODY> <OBJECT ID="PolyCtl" CLASSID="CLSID:4CBBC676-507F-11D0-B98B-000000000000" CODEBASE="http://example.sq-soft.com/mydir/myctl.cab#version=1,0,0,1" width=400 height=335> </OBJECT> </BODY> CODEBASE 也可以直接指向 OCX 或 DLL 文件,如: CODEBASE="http://example.sq-soft.com/mydir/myctl.dll#version=1,0,0,1" 另自动控制可变宽高: <object ID="MyGl" classid="CLSID:42139A2D-5DA6-42C3-A9E8-E289A5C6E5BE" width=400 height=335> </object> <br> <input id=w value=400 onblur=MyGl.width=parseInt(this.value)> <input id=h value=335 onblur=MyGl.height=parseInt(this.value)> <input type=button value=go onclick=MyGl.width=parseInt(w.value)>
regsvr32 netshare.ocx 注册netshare.ocx控件
regsvr32 /u netshare.ocx 解除netshare.ocx控件的注册