浏览器打开exe(IE和谷歌)

浏览器打开exe的方法

1.IE浏览器

taskkill方法是禁止打开多个exe,只能打开一个,如果打开多个,会首先把之前的都关闭又重新打开。
主要方法是var command = "taskkill /f /t /im 360Safe.exe " ;
只是想打开本地exe的话就是jsRunExec方法。
注意如下代码块的空格,如下方法是传参的写法,传参前要加空格。

function taskkill() {

        var command = "taskkill /f /t /im WeChat.exe   " ;
        window.oldOnError = window.onerror;
        window._command = command;
        window.onerror = function (err) {
            if (err.indexOf('utomation') != -1) {
                alert('请更改你的IE的安全级别:开始->设置->控制面板->Internet选项->安全->自定义级别->对没有标记为安全的ActiveX控件进行初始化和脚本运行->启用。命令:' + window._command);
                return true;
            } else
                return false;
        };

        var wsh = new ActiveXObject('WScript.Shell');
        if (wsh) wsh.Run(command);
        wsh = null;
        window.onerror = window.oldOnError;
    }

    function jsRunExec(url) {
        taskkill();

        setTimeout(function () {
            var command = "D:\WeChat\\WeChat.exe  " +url;
            window.oldOnError = window.onerror;
            window._command = command;
            window.onerror = function (err) {
                if (err.indexOf('utomation') != -1) {
                    alert('请更改你的IE的安全级别:开始->设置->控制面板->Internet选项->安全->自定义级别->对没有标记为安全的ActiveX控件进行初始化和脚本运行->启用。命令:' + window._command);
                    return true;
                } else
                    return false;
            };

            var wsh = new ActiveXObject('WScript.Shell');
            if (wsh) wsh.Run(command);
            wsh = null;
            window.onerror = window.oldOnError;
        },700);


    }

因为ActiveX控件为IE浏览器的特有对象,因此该方法仅允许在IE浏览器下使用,且使用前必须配置IE浏览器的安全策略(没有设置会进行弹框提示)。

2.谷歌浏览器

如在Chrome中用如上方法调用,会打不开exe而会Console报错ActiveXObject is not defined,这是因为Chrome出于安全性考虑已经禁止直接调用客户端程序,去除了内置对象ActiveXObject,在Chrome下解决该问题思路,可以选择使用“url protocol handler"私有协议,widows提供了用户可自定义的协议,使用私有协议首先需要到注册表下添加协议的属性(类型、key、值),通过已定义的私有协议就可以调用本地客户端。

因为浏览器的安全策略问题,除了IE外的其他浏览器都无法打开本地exe文件,因为采用将exe路径写入注册表的方式打开。

使用超链接的方式打开一个本地exe文件

  1. 添加注册表
    通过txt文本写,写完后更改后缀名:myprotocol.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\myprotocol]
@="myprotocol Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\myprotocol\DefaultIcon]
@="D:\WeChat\\WeChat.exe"

[HKEY_CLASSES_ROOT\myprotocol\shell]
@=""

[HKEY_CLASSES_ROOT\myprotocol\shell\open]
@=""

[HKEY_CLASSES_ROOT\myprotocol\shell\open\command]
@="\"D:\WeChat\\WeChat.exe\" "
  1. 超链接
<a href="myprotocol"://">点开exe</a>

需要后面传参的话直接在后面跟参数就可以了,例如<a href="myprotocol"://12345">点开exe</a>

如果要禁止打开多个exe,需要再写一个注册表相当于cmd命令,因为谷歌浏览器安全性较高不允许写入电脑。

  1. xxx.bat文件
C:\Windows\system32\taskkill.exe /f /im WeChat.exe
  1. 超链接
<a  onclick="jsRun()">点开exe</a>
<a href="myprotocol"://"  id="runexe" style="display:none">点开exe</a>
<a href="closeexe"://"  id="closeexe"style="display:none">jsRun点开exe</a>
  1. js调用
function jsRun(){
$("#closeexe").onclick();
setTimeout(function(){
$("#runexe").onclick();
},700);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值