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

     

     

     

     

  • 相关阅读:
    HDU 2888 Check Corners (模板题)【二维RMQ】
    POJ 3264 Balanced Lineup(模板题)【RMQ】
    poj 3368 Frequent values(经典)【RMQ】
    SPOJ RPLN (模板题)(ST算法)【RMQ】
    UVA 796 Critical Links(模板题)(无向图求桥)
    UVA 315 Network (模板题)(无向图求割点)
    POJ 2029 Get Many Persimmon Trees (模板题)【二维树状数组】
    poj 3067 Japan 【树状数组】
    POJ 2481 Cows 【树状数组】
    POJ 1195 Mobile phones【二维树状数组】
  • 原文地址:https://www.cnblogs.com/turnip/p/13730166.html
Copyright © 2020-2023  润新知