js 调用本地 exe 方法(通用,支持目前 大部分主流浏览器,chrome,火狐,ie)... | 您所在的位置:网站首页 › 在exe中打开 › js 调用本地 exe 方法(通用,支持目前 大部分主流浏览器,chrome,火狐,ie)... |
js 调用 本地 exe 通用解决方法
前言
在web项目中,经常遇到需要在某个页面上需要调用本地的程序exe,网上有很多方法,大部分只能在ie上用 。 var path = '程序地址.exe 参数';//程序地址 +' '+ 参数; //exe程序所在位置以及要传的参数 try { var Shell = new ActiveXObject("WScript.Shell"); Shell.Run(path,0,true); } catch (e) { console.log(e) alert("该可执行文件不存在"); }ActiveXObject插件是IE所特有的,在不同浏览器内核下是无法通用的。只有用ie浏览器才可以使用ActiveXObject。 在浏览网页中发现 有个 a标签中 mailto: 用法,直接可以调用发送邮件方法,腾讯在很多地方可以调用起qq进行聊天,这个功能就非常好,体验也不错,研究了一下他们的实现,发现是通过自定义windows URL协议 来实现的。 解决方案思路 通过自定义URL协议来实现在网页中调用 指定exe 程序,并且传递参数。 文件示例openExe.bat (具体调用exe的文件) @echo off rem openExe 是url协议名 使用打开exe set m=%m:openExe:=% set m="%m:separator=&%" rem 实际运行程序的地址在这里配置 %m% 是参数 start "" "C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe" %m% exit注册表添加 openExe URL协议 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\openExe] @="URL:openExe Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\openExe\DefaultIcon] @="openExe.exe,1" [HKEY_CLASSES_ROOT\openExe\shell] [HKEY_CLASSES_ROOT\openExe\shell\open] [HKEY_CLASSES_ROOT\openExe\shell\open\command] @="cmd /c set m=%1 & \"C:\\Program Files\\openExe\\openExe.bat\" %%m%% & exit"dos 命令注册注册表 REGEDIT /S openExe.reg 使用html实列 执行可执行文件(协议名:参数) 打包文件 到exe实现自动安装使用winrar 添加压缩文件 , 创建自解压文件 高级 设置 安装程序
确定后,打包完成。 双击后就能制动 安装完成注册,既可以在页面中随意使用openExe 协议了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |