js通过注册表找到本地软件安装路径并且执行

场景:用js执行本地的安装软件,如果不存在就执行安装

 

操作步骤:

1.前台js代码 

<script type="text/javascript">
function exec () {  
    var command;  
    var shell = new ActiveXObject("WScript.Shell"); 
    try
    {
        command = shell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Directory\\shell\\RadiAnt\\Icon");//从注册表获得软件安装路径 
    }
    catch(e)
    {
        if(window.confirm("你可能还没有安装Radiant,请下载安装")){
            //alert("确定");
             window.location.href="jspView/radiantsetup32312921.exe";
             return false;
         }else{
            return false;
        }
    }//执行exe程序
        window.oldOnError = window.onerror;  
        window._command = command;  
        window.onerror = function (err) {  
      if (err.indexOf('utomation') != -1) {  
        alert('命令' + window._command + ' 已经被用户禁止!');   
        return true;  
       }  
       else return false;  
     };  
     var wsh = new ActiveXObject('WScript.Shell');  
     if (wsh)  
     wsh.Run("\""+command); //解决目录包含空格问题  
     window.onerror = window.oldOnError;
}  
</script>

 

执行exec()就能调用本地软件了

 

以下是需要注意的几点

1.该程序只能在IE上执行

2.注册表路径的查找步骤

右键-复制项名称

3.想要执行改程序必须更改本地的浏览器安全级别

否则报错:ERROR:Automation 服务器不能创建对象

具体参考百度文档:http://jingyan.baidu.com/article/ae97a646d43dc8bbfd461d0b.html

 

posted @ 2016-12-01 15:32  耀仔  阅读(4851)  评论(1编辑  收藏  举报