专栏首页菩提树下的杨过巧用WinRAR+Javascript解决activeX的自动安装问题

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

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

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

我的办法:

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

 <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制作安装程序

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • objective-C 的OOP(上)--类定义、继承及方法调用

    上一篇展示了如何用传统的“面向过程编程方法”,实现画“矩形”、“圆”、“椭圆”,这一篇看下如何改用OOP的方法来实现: ? 因为要用到“颜色”以及“矩形区域”二...

    菩提树下的杨过
  • “单播”、“组播”和“多播”

    摘自"百度知道",我不知道! 当前的网络中有三种通讯模式:单播、广播、组播(多播),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。 一、单...

    菩提树下的杨过
  • windows 2008上启用防火墙后sqlserver 2005经常出现连接超时的解决办法

    昨日将sqlserver2005从windows2003迁移到windows2008系统上后,发现经常打开网页时提示sql server连接超时,但是有时候又是...

    菩提树下的杨过
  • python中__del__使用方法

    创建对象后,python解释器默认调用__init__()方法。当删除一个对象时,python解释器也会默认调用一个方法,这个方法为__del__()方法。在p...

    周小董
  • 机器学习算法之逻辑回归(一)

    标题: 分类问题 二元分类 Sigmoid函数 算法导出 梯度上升 我们曾经介绍过,机器学习中最常见的问题有两大类,一类是回归问题,一类是分类问题。回归问题我们...

    企鹅号小编
  • 春节充电系列:李宏毅机器学习笔记13之无监督学习:主成分分析(PCA)

    【导读】我们在上一节的内容中已经为大家介绍了台大李宏毅老师的机器学习课程的半监督学习,这一节将主要针对讨论无监督学习:主成分分析(PCA)。本文内容涉及机器学习...

    WZEARW
  • 为什么游戏遇上大数据后更易让人上瘾

    本文转自网络,如涉及侵权,请及时联系我们 在一个学习编程的课堂上,老师让孩子们用类似“嗨,大家好,我是×××”的句式介绍自己,孩子们的介绍五花八门,李白、荆轲、...

    CDA数据分析师
  • 建筑和空间

    王兵
  • 从Spark加载资源管理器的源码提升自己~

    作为Spark源码阅读爱好者,有谁想过Spark是如何实现资源管理器比如yarn等可插拔的呢?

    Spark学习技巧
  • 王者荣耀未来新版本的环境优化计划,人工智能技术将引入

    无论在哪个网络游戏中,无论在哪个玩家群体,总会充斥着一大堆的游戏喷子。这些人在游戏中总是花式喷,莫名其妙喷,见谁都喷,当然也有被队友坑得受不了的喷,但是这些情况...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券