zoukankan      html  css  js  c++  java
  • 巧用WinRAR+Javascript解决activeX的自动安装问题

    转自https://www.cnblogs.com/yjmyzz/archive/2009/12/17/1626506.html

    先纠正一个观点,所谓自动安装并非强制安装,否则就变成流氓软件了,就算是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:captureQQCaptureActiveX.ocx -s

    uninstall.bat 参考内容:
    regsvr32 c:captureQQCaptureActiveX.ocx /u

    delete.bat 参考内容:
    regsvr32 c:captureQQCaptureActiveX.ocx /u -s

    del c:captureCameraDll.dll

    del c:captureQQCaptureActiveX.ocx

    del c:captureinstall.bat

    del c:captureuninstall.bat

    del c:capturedelete.bat

    rd c:capture


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

     

     

     

     

  • 相关阅读:
    Unity周记: 2020.09.07-09.13
    Unity周记: 2020.08.31-09.06
    CF1060F Shrinking Tree
    洛谷P6783 [Ynoi2008] rrusq
    洛谷P5644 [PKUWC2018] 猎人杀
    洛谷P1587 [NOI2016] 循环之美
    洛谷P4466 [国家集训队] 和与积
    集合幂级数杂题
    Flink基础(49):FLINK SQL(25) 内置函数(七)表值函数
    Flink基础(48):FLINK SQL(24) 内置函数(六)条件函数
  • 原文地址:https://www.cnblogs.com/turnip/p/13730166.html
Copyright © 2011-2022 走看看