将控件打包成CAB加数字签名方法实现控件自动更新

      1、所需工具
  ============== 
  cabarc.exe ———用于将ocx及所需dll文件打包成cab文件 
  cert2spc.exe ——-将cer证书转为spc证书
  chktrust.exe ——-检测签名是否正确
  makecert.exe——制作数字证书
  signcode.exe
  ================
  2、流程
  以上根据需要来确定采用哪些工具,这里我采用了makecert.exe 、cert2spc.exe来制作认证的证书,signcode.来进行数字签名。 
  进入DOS状态,进入上述工具所在目录,输入以下命令: 
  一、 
  makecert -sv test.pvk -n ”CN=test,[email protected],O=test” test.cer 
  这个是制作证书, -sv是制作加密的文件,会给证书设定公钥和私钥(-sk则生成没有密钥的证书),CN是公司,E=EMail,O=认证公司的名称,test.cer是生成文件的名称。 
  二、然后运行:Cert2SPC test.cer test.spc 将cer证书转为spc证书。 
  这时制作的证书是没有任何认证公司认证的,通过认证的一年需要大约400美金。 
  三、创建INF文件 
  [Version] 
  signture=”$Title$” 
  AdvancedINF=2.5 
  [Add.Code] 
  Player.ocx = Player.ocx 
  avcodec.dll = avcodec.dll 
  avformat.dll = avformat.dll 
  avutil.dll = avutil.dll 
  H264Decoder.dll = H264Decoder.dll 
  NetLink.dll = NetLink.dll 
  [NetLink.dll] 
  file-win32-x86=thiscab 
  [avcodec.dll] 
  file-win32-x86=thiscab 
  [avformat.dll] 
  file-win32-x86=thiscab 
  [avutil.dll] 
  file-win32-x86=thiscab 
  [H264Decoder.dll] 
  file-win32-x86=thiscab 
  [Player.ocx]
  file-win32-x86=thiscab 
  clsid={CD55E5EC-F555-5555-5555-555A55C55DC5} 
  RegisterServer=yes 
  FileVersion=1,0,0,2 
  其中大扩后中的类容对于dll文件来说若是不需要注册则可以省略。 
  四、使用cabarc.exe将ocx及所需dll文件和inf文件打包成CAB文件包 
  将所需的ocx和dll及inf文件放在同一个目录下,然后在dos下进入到该目录下,键入以下命令: 
  F:/Cabsdk/BIN/CABARC -s 6144 n CamView.CAB Player.ocx avcodec.dll avformat.dll avutil.dll H264Decoder.dll NetLink.dll Player.inf 
  注 意这里“F:/Cabsdk/BIN/”是cabarc.exe所在目录,CamView.CAB是要生成的CAB文 件,NetLink.dll avcodec.dll avformat.dll avutil.dll H264Decoder.dll Player.ocx Player.inf 是所需的文件,按重要顺序排列,inf文件放在最后。系统提示成功之后,会在ocx同目录下生成CamView.CAB文件。打包还可以使用其他工具,如 老毛桃cab打包等。 
  五、使用signcode.exe给OCX文件进行数字签名。(图形化界面操作) 
  双击signcode.exe后出现一个数字签名向导 
  下一步 选择需要签名的文件(CamView.cab) 
  下一步 这里选择了自定义 
  下一步 选择签名证书,从文件选择,选择刚才做好的test.spc 
  下一步 私钥,磁盘上的私钥文件,点浏览选择刚才做好的test.pvk 
  下一步 输入密码 
  下一步 选择算法,这里我选择的是sha1 
  下一步 默认
  下一步 描述:输入安装证书时提示的文字,随便输入 
  下一步 时间 默认 
  下一步 完成
  六、将CAb文件挂上服务器并修改网页中控件部分 
  <OBJECT id=CamViewer classid=”clsid:CD55E5EC-F555-5555-5555-555A55C55DC5″ CODEBASE=”CamView.CAB#version=1,0,0,2″height=500 width=645 hspace=0 vspace=0 VIEWASTEXT> </OBJECT> 
  其中CODEBASE=”这里填写CAB文件的路径,#version=1,0,0,2″是控件的版本号,要与ocx的版本号一致。 七、升级 

  只要在源代码中更改Player.ocx文件中对应的版本 号,并同时更改网页调用控件的版本号就可以了,下一次客户访问这个页面时会自动检测并提示安装新控件,新控件会覆盖旧版本的控件。


转自http://blog.csdn.net/mengxianhua/article/details/5897275

你可能感兴趣的:(object,dos,服务器,dll,email,工具)