前端JS调用exe程序

在做web应用的时候,经常会遇到在web中调用本地应用程序的问题,例如在web中点击一个按钮,然后打开自己写的或者别人的应用程序,经常在淘宝天猫购物的会发现当想跟客服沟通,点击阿里旺旺图标的时候会调用起客户端。QQ聊天也有这样效果的实现。

在IE中提供了ActiveXObject方法,于是在IE浏览器下可以这样写:

<script type="text/javascript">
        function getJkMonitor(serviceInfo) {
            var Shell = new ActiveXObject("WScript.Shell");
            try {
                //exe程序所在位置以及要传的参数
                var kk = "C:\\KdMonitor\\KdMonitor.exe 888888";
                var aa = Shell.Run(kk, 1, false);
            }
            catch (e) {
                alert("该可执行文件不存在");
            }
        }
        //调用函数
        getJkMonitor();
</script>

在让整个网页运行在IE下给人不是很好的体验,于是实现在其他浏览器下该多好。

其他浏览器的实现需要自定义注册表,注册表内容如下:

Windows Registry Editor Version 5.00  
  
[HKEY_CLASSES_ROOT\NetPosaVideo]  
  
"URL Protocol"="C:\\KdMonitor\\KdMonitor.exe"  
  
@="NetPosaVideoProtocol"  
  
[HKEY_CLASSES_ROOT\NetPosaVideo\DefaultIcon]  
  
@="C:\\KdMonitor\\KdMonitor.exe,1"  
  
[HKEY_CLASSES_ROOT\NetPosaVideo\shell]  
  
[HKEY_CLASSES_ROOT\NetPosaVideo\shell\open]  
  
[HKEY_CLASSES_ROOT\NetPosaVideo\shell\open\command]  
  
@="\"C:\\KdMonitor\\KdMonitor.exe\" \"%1\""  

第一行是注册表工具的版本信息;

第二行中的NetPosaVideo就是在HKEY_CLASSES_ROOT下面添加一个NetPosaVideo树,其中NetPosaVideo的名称就对应着自定义URL Protocol的名称,在web中调用的时候需要这个名称;

第三行中的是指定应用程序的路径,注意:只能是exe的程序,每级目录之间用双反斜杠;

第四行是协议的名称;

第五行表示在Simu中再加一个分支,照抄;

第六行也是对应的程序路径,后面的1照抄;

第七、第八、第九行同第五行;

第十行也是将路径换成自己的程序路径,其中%1表示到参数。

将#之间的内容复制到一个txt文档中,修改后缀名为.reg,双击该文件即可直接导入到注册表中。

Html调用:

<a href="NetPosaVideo://888888">打开视频监控</a>

 

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值