前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >巧用WinRAR+Javascript解决activeX的自动安装问题

巧用WinRAR+Javascript解决activeX的自动安装问题

作者头像
菩提树下的杨过
发布2018-01-23 14:42:47
9350
发布2018-01-23 14:42:47
举报

先纠正一个观点,所谓自动安装并非强制安装,否则就变成流氓软件了,就算是silverlight,flash这类知名ActiveX,用户也有选择安装或是不安装的权利。

较正统的解决办法是提示用户设置IE权限,然后在object里加入codebase='ocx的下载路径',然后制作数字证书,个人觉得这样比较复杂。

我的办法:

1.先用js检测activex是否可用

代码语言:js
复制
 <object id='x' name='x' classid='clsid:82AB2103-26BC-4999-8DDE-DF1A647D96E5'></object>

 <script type="text/javascript">
 try{
 var x = document.getElementById('x');        
 if (x.Caption==undefined){
 if (confirm('您的机器上未安装截图所需的ActiveX插件!需要安装吗?')){
                window.open('http://www.youname.com/setup.exe')
            };
        }
    }
 catch(e){        
    }
 </script>

注:用delphi开发出来的activeX,默认肯定是有Caption属性的,如果检测到Caption属性未定义,表明未安装控件,询问用户后,跳到下载安装文件。其它工具开发出来的ActiveX也可用类似思路检测。

2.下载安装文件的处理 

activex的安装其实也就是调用regsvr32命令对ocx进行注册而已,所以基本上安装就是一个copy & run的过程,完全可以用winrar搞定。

winrar能将文件打包成exe格式的自解压文件,并且还能在解压前或解压后执行一些命令,甚至还能在"开始-->程序"中生成快捷方式,这些足够我们做一个安装程序了。

(1)先写几个批处理,用于自动注册或反注册,以及删除功能

install.bat 参考内容如下:(这里假定程序安装/解压到c:\capture目录下) regsvr32 c:\capture\QQCaptureActiveX.ocx -s

uninstall.bat 参考内容: regsvr32 c:\capture\QQCaptureActiveX.ocx /u

delete.bat 参考内容: regsvr32 c:\capture\QQCaptureActiveX.ocx /u -s

del c:\capture\CameraDll.dll

del c:\capture\QQCaptureActiveX.ocx

del c:\capture\install.bat

del c:\capture\uninstall.bat

del c:\capture\delete.bat

rd c:\capture

(2)开始用WinRar制作安装程序

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009-12-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档