zoukankan      html  css  js  c++  java
  • 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协议名 使用<a href="openExe:参数" >打开exe</a>
    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_ROOTopenExe]
    @="URL:openExe Protocol"
    "URL Protocol"=""
    
    [HKEY_CLASSES_ROOTopenExeDefaultIcon]
    @="openExe.exe,1"
    
    [HKEY_CLASSES_ROOTopenExeshell]
    
    [HKEY_CLASSES_ROOTopenExeshellopen]
    
    [HKEY_CLASSES_ROOTopenExeshellopencommand]
    @="cmd /c set m=%1 & "C:\Program Files\openExe\openExe.bat" %%m%% & exit"
    
    

    dos 命令注册注册表

    REGEDIT /S openExe.reg
    

    使用html实列

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    </head>
    <body>
    <div>
    	<a href="openExe:www.baidu.com">执行可执行文件(协议名:参数)</a>
    </div>
    </body>
    </html>
    

    打包文件 到exe实现自动安装

    使用winrar 添加压缩文件 , 创建自解压文件 高级 设置 安装程序


    一般 设置解压路径 与上面 bat 文件地址一致

    确定后,打包完成。
    双击后就能制动 安装完成注册,既可以在页面中随意使用openExe 协议了。

        

  • 相关阅读:
    搭建环境遇到的几个问题
    webservice
    Eclipse 反编译 阅读class 文件
    设置navigationBar上面的item
    自定义的UITabbar上面的按钮的x坐标的计算方法
    UIToolbar自定义背景及按钮设置
    UITabBar实现自定义背景及UITabBarItem自定义图片和字体
    IOS APP圆形图片的实现
    如果AlertView输入框为空,则禁止点击确定按钮
    两种局部刷新UITableView的方法的使用条件
  • 原文地址:https://www.cnblogs.com/geekswg/p/15465094.html
Copyright © 2011-2022 走看看