web调用客户端程序

背景

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

原理

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

设置注册表调用协议

    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\EmrBrowser\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可以下载参考

效果如图:

如何调用

1.一个<a>标签即可:
    <a href="Browser:// 0000513082 R475323015">测试调用EXE</a>
2.使用JQuery创建a标签调用:

    function sendReportsToPrinter() {
        var link = $('<a href="Browser:// 0000513082 R475323015"></a>');
        $('body').append(link);
        link.get(0).click();
        link.remove();
     }

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

参考链接

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
Demo下载
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在进行Web服务开发时,通常会使用WSDL(Web Services Description Language)文件来描述服务的功能和操作。WSDL文件包含了服务的接口、操作、消息格式等信息,可以帮助客户端程序生成调用代码。 生成客户端调用代码通常需要以下步骤:首先,通过WSDL文件可以使用工具,如wsimport(对于Java)或者.NET提供的类似工具,来自动生成客户端调用代码。这些工具会根据WSDL文件的描述生成客户端所需的类和方法,这些类和方法可以用来构建请求消息、发送请求、接收响应等操作。 然后,客户端程序可以使用生成的代码来调用Web服务。通过创建服务实例、设置请求参数、调用操作等步骤,可以实现与Web服务的交互。客户端程序可以直接调用生成的方法,无需手动构建请求和解析响应,从而简化了开发工作。 在生成客户端调用代码时,需要注意WSDL文件可能会包含多个操作和消息,需要根据自己的需求选择需要调用的操作,并生成相应的代码。同时,WSDL文件中也会包含一些描述性的信息,如文档、命名空间等,这些信息也可以帮助客户端程序理解和使用服务。 总之,借助WSDL文件可以很方便地生成客户端调用代码,从而简化Web服务的调用和使用。客户端程序可以利用生成的代码来与服务进行交互,实现数据的发送和接收,从而实现了服务的利用和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值