Active X控件在IE上自动下载并注册
来源:互联网 发布:关于大数据的毕业设计 编辑:程序博客网 时间:2024/06/07 03:02
ActiveX控件对于大多数开发人员来说并不陌生,很多情况下我们都会利用ActiveX控件调用一些证书。ActiveX控件注册分为两种:一种手动注册;一种自动注册。
接下来,我将介绍一下ActiveX在IE上实现自动下载和注册。首先,我们需要将注册的控件、所依赖的库、安装文件(.inf)打包成CAB文件。然后将CAB文件放入WEB项目中。如何打包CAB文件,我在这里不加以说明,需要用到的时候,自己上网查询一下就能完成。重点说一下inf文件,这是这个CAB文件和实现下载并自动注册的重中之重,如果inf文件不正确,CAB包不能正常下载和注册。
1、inf文件详细信息
version:指定文件的版本信息;[version]Signature="$Chicago$"AdvancedINF=2.0Defaultinstall:是指CAB文件默认安装的信息,CopyFiles是要复制到目的路径下的文件,RegisterOCXs是要注册的OCX控件信息;[Defaultinstall]CopyFiles=filesRegisterOCXs=RegisterFilesSourceDisksNames:是指源文件的名称;[SourceDisksNames]1=%DiskName%,SRQ24Ctl.cab,1SourceDisksFiles:是指要注册的文件;[SourceDisksFiles]SRQ24Ctl.ocx=1[RegisterFiles]%30%\Windows\SysWOW64\SRQ24Ctl.ocxDestinationDirs:文件安装的目录,SysWoW64是64位操作系统的安装路径;[DestinationDirs]files=30,Windows\SysWOW64files:是指复制到目的路径下的源文件;[files]SRQ24Ctl.ocx=SRQ24Ctl.ocxCryptlib.dll=Cryptlib.dllDAFK.dll=DAFK.dlldaiclib.dll=daiclib.dllDAUK.dll=DAUK.dllDHKEY.dll=DHKEY.dllDKEY.dll=DKEY.dllDSFK.dll=DSFK.dlldtall.dll=dtall.dllDticTokenApi.dll=DticTokenApi.dllDTLog.dll=DTLog.dllGenEccKey.dll=GenEccKey.dllicapi.dll=icapi.dllIcForCsp.dll=IcForCsp.dlllibDADer.dll=libDADer.dlllibeay32.dll=libeay32.dllnodrvkey.dll=nodrvkey.dllpklibv3.dll=pklibv3.dllSM3.dll=SM3.dllstorkey.dll=storkey.dllxcsp_eclib.dll=xcsp_eclib.dllSRQ24Ctl.ocx:是注册控件的详细信息;file-win32-x86中的file是指文件、win32是指windows系统、x86指系统位数;RegisterServer=yes说明该文件自动注册,clsid指文件的注册码;[SRQ24Ctl.ocx]file-win32-x86=thiscabRegisterServer=yesclsid={09AC9B85-5A51-4106-AC35-5B8025A2C18C}DestDir=11FileVersion=3,0,0,0String:指明文件的目的路径;[String]DiskName="Windows\SysWOW64"
2、在jsp页面指定ocx控件的信息
注:id是唯一标识,codebase指明CAB文件的位置和版本信息,clsid是要注册控件的信息。<OBJECT id="PXCtl" style="display:none" codebase="<%=request.getContextPath() %>/SRQ24Ctl.cab#version=1,6,0,1" classid="CLSID:09AC9B85-5A51-4106-AC35-5B8025A2C18C" type="application/x-oleobject" VIEWASTEXT></OBJECT>
3、在后台实现CAB文件下载
@Controllerpublic class ActiveController { /** * 获取CAB文件 * @param request * @param response * @return */ @RequestMapping(value = "/SRQ24Ctl.cab",method = RequestMethod.GET) public ModelAndView getActiveComponent(HttpServletRequest request, HttpServletResponse response){ response.setCharacterEncoding("UTF-8"); String filePath = ""; String fileName = "SRQ24Ctl.cab"; String contentType = "application/octet-stream"; //下载文件 try { this.downloadFile(request,response,filePath,fileName,contentType); } catch (IOException e) { e.printStackTrace(); } return null; } //文件下载 public void downloadFile(HttpServletRequest request,HttpServletResponse response,String filePath,String fileName,String contentType) throws IOException { //设置响应编码 response.setCharacterEncoding("UTF-8"); //获取应用路径 String path = request.getSession().getServletContext().getRealPath("/"); //获取下载路径 String downloadPath = path+filePath+fileName; //获取下载文件的长度 long fileLength = new File(downloadPath).length(); //配置下载参数 response.setContentType(contentType); response.setHeader("Content-disposition","attachment;filename="+fileName); response.setHeader("Content-Length",String.valueOf(fileLength)); //创建输入输出流 InputStream bis = new BufferedInputStream(new FileInputStream(downloadPath)); // 存放路径 //String descPath = System.getProperty("user.home") + File.separator+"MIS_DATA"+File.separator+"CAB"+File.separator+"SRQ24Ctl.cab"; OutputStream bos = new BufferedOutputStream(response.getOutputStream()); //OutputStream bos = new BufferedOutputStream(new FileOutputStream(descPath)); byte[] buffer = new byte[1024*8]; int len = 0; //循环读写 while((len = bis.read(buffer,0,buffer.length)) != -1){ bos.write(buffer,0,len); bos.flush(); } //关闭流 bos.close(); bis.close(); }}
阅读全文
1 0
- Active X控件在IE上自动下载并注册
- IE中Active控件实现自动下载注册(基于Tomcat服务器)
- 取消ie的active控件不再询问总是信任自动下载安装的设置
- 控件能在网页上自动下载
- WEB工程 如何自动下载ACTIVE控件
- ActiveX控件在IE浏览器中自动下载
- 非IE内核浏览器支持Active X控件
- 在火狐上使用active控件
- 在IE中使用未签名的active控件
- 关于解决未在计算机注册Active控件或者没有Active控件的解决方法
- 什么是Active X控件
- Active X 控件
- Active控件安全注册代码
- 在jsp文件中调用自定义控件(如果不存在,自动下载CAB文件安装注册)
- regsvr32注册Date Time Picker-Excel 2007添加Active X控件
- 重新注册IE控件
- SWFUpload控件在IE上没显示
- VC++ 编写 Active X控件
- 5selenium+python 窗口alert跳转 登录成功
- 关于禁止直接访问登陆后跳转的相关界面拦截
- 剑指offer——46.扑克牌顺子
- Android动画之逐帧动画(FrameAnimation)详解
- trim()在IE8和谷歌浏览器中的不同
- Active X控件在IE上自动下载并注册
- 链表的归并排序算法
- vim 配置文件 .vimrc 脚本(Linux,Mac OS都可以用)
- Android--Paint与Canvas用法
- Android垃圾回收算法
- C#根据条件设置datagridview行的颜色
- 《深入理解mybatis原理》 MyBatis事务管理机制
- Android动画之逐帧动画(Frame Animation)实例详解
- 数据结构与算法总结