博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web调用客户端程序
阅读量:5242 次
发布时间:2019-06-14

本文共 1330 字,大约阅读时间需要 4 分钟。

2018.3.15更新

惭愧今天才看到这篇博客http://www.cnblogs.com/leslies2/p/3727762.html,写的很赞,很全面,就是有点长,哈哈,不过看来搜索也是一门学问啊。


背景

最近做一个集成需求,我们是B/S架构的,对方是C/S架构的,对方直接扔过来一个EXE连OCX都没有,让我们调用,也就是说,我们需要通过js程序去调用他们的客户端程序并传入多个参数,当时内心是崩溃的,网上查了些资料,发现还真的可以!下面开始。

原理

1.在注册表中把需要调用的exe注册一个调用协议2.在浏览器中通过标签来直接调用

设置注册表调用协议

Windows Registry Editor Version 5.00    [HKEY_CLASSES_ROOT\Browser]    @=""    "URL Protocol"=""    [HKEY_CLASSES_ROOT\Browser\DefaultIcon]    @="D:\\MyCode\\learnTest\\RegisterURI\\wrapper.exe"    [HKEY_CLASSES_ROOT\Browser\Shell]    @=""    [HKEY_CLASSES_ROOT\Browser\Shell\Open]    @=""    [HKEY_CLASSES_ROOT\Browser\Shell\Open\Command]    @="D:\\MyCode\\learnTest\\RegisterURI\\wrapper.exe %1"

说明:

     Browser:自定义的协议名称;
     D:\MyCode\learnTest\RegisterURI\wrapper.exe :调用的exe文件路径;
     %1 :代表传入的参数;
    以上内容可以直接保存到记事本里,修改为.reg文件,双击执行即可。
    当然,也可以regedit直接进注册表一级一级的设置,具体修改注册表自行搜索。
    文章末尾有demo可以下载参考

效果如图:

1142573-20170827121325558-1880662638.jpg

如何调用

1.一个标签即可:    测试调用EXE2.使用JQuery创建a标签调用:    function send() {        var link = $('');        $('body').append(link);        link.get(0).click();        link.remove();     }

说明:

    (敲黑板~)此处重点,重点,重点
    Browser:// 定义的注册表协议名,会作为第一个参数传入,多个参数用空格分割即可,看下图,最后一个参数会自动添加/需要单独处理。
执行效果:
1142573-20170827121353699-509045483.jpg

参考链接

1.https://msdn.microsoft.com/en-us/library/aa767914.aspx#app_ex  (msdn强烈推荐)2.http://www.cnblogs.com/hwade/archive/2008/01/08/1029686.html

转载于:https://www.cnblogs.com/Nuss/p/7439841.html

你可能感兴趣的文章
记录医生开的药
查看>>
批处理弹窗
查看>>
VS code自定义语法高亮
查看>>
数据集:Introduction to Econometrics by Stock&Watson
查看>>
Jupyter Notebook不能自动打开浏览器
查看>>
鱼油资料
查看>>
Asp.Net Server.MapPath()用法
查看>>
一点css 基础
查看>>
webapi 之 post参数传递
查看>>
JQuery 判断复选框是否选中
查看>>
Win Server 2012 配置运行 .net core 环境
查看>>
swagger 的使用
查看>>
HTTP中GET,POST和PUT的区别
查看>>
转 Git使用教程,最详细,最傻瓜,最浅显,真正手把手教
查看>>
Asp.net Core 微信小程序支付
查看>>
快递100API
查看>>
C# 知识点笔记:IEnumerable<>的使用,利用反射动态调用方法
查看>>
jvm学习五:垃圾回收
查看>>
Linux脚本学习笔记留底
查看>>
区别计算机概念 位(bit)、字节(Byte)、字
查看>>