js利用URL Protocol调用本地exe并传入参数

1.自定义URL Protocol 协议

两种方式

第一种:直接修改注册表

开始 => 运行
在这里插入图片描述
HKEY_CLASSES_ROOT
新建项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二种:编写注册表信息,执行即可

创建一个文件
在这里插入图片描述
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Webshell]
@=“URL:Webshell Protocol Handler”
“URL Protocol”=""
[HKEY_CLASSES_ROOT\Webshell\DefaultIcon]
@=“D:\workspace\test\system\tools\Call_Printer\trunk\code\Printer\Debug\Printer.exe”
[HKEY_CLASSES_ROOT\Webshell\shell]
[HKEY_CLASSES_ROOT\Webshell\shell\open]
[HKEY_CLASSES_ROOT\Webshell\shell\open\command]
@="“D:\workspace\test\system\tools\Call_Printer\trunk\code\Printer\Debug\Printer.exe” “%1"”

这里说明一点
如果上面传递不了参数,即exe程序接收不到参数,将%1改为%L即可
如果要传递多个参数,自定义传入分隔符,传到应用程序自己解析即可。

2.Web端调用方法

在这里插入图片描述

3.EXE处理接收到的参数

在这里插入图片描述
如果是上图web测试代码,则接收到的数据为:WebPrinter:21/560e7cfde165449fb56a92dede3d0003a958 字符串,之后自己处理即可

4.EXE程序打包

我这里使用inno打包,只需要加上下面这段即可

Inno Setup 写入注册表的代码如下:
[Registry]
Root: HKCR; SubKey: WebPrinter; ValueData: “WebPrinter Protocol”; ValueType: string; Flags: CreateValueIfDoesntExist UninsDeleteKey;
Root: HKCR; SubKey: WebPrinter; ValueName: “URL Protocol”; Flags: CreateValueIfDoesntExist; ValueType: string;
Root: HKCR; SubKey: WebPrinter\DefaultIcon; ValueData: {app}\Printer.exe; Flags: CreateValueIfDoesntExist; ValueType: string;
Root: HKCR; SubKey: WebPrinter\shell\open\command; ValueData: “{app}\Printer.exe “”%L”""; Flags: CreateValueIfDoesntExist; ValueType: string;

利用URL协议实现网页调用本地应用程序并传参的方法主要有以下几个步骤: 1. 创建一个自定义的URL协议:首先需要创建一个自定义的URL协议,比如"myapp://",用于标识要调用的本地应用程序。 2. 在本地应用程序中注册URL协议:在本地应用程序的配置文件中注册URL协议,指明该协议与应用程序的关联,以便正确打开应用程序。 3. 在网页中设置链接:在网页中设置一个链接,并使用上述自定义的URL协议来调用本地应用程序。例如,使用"myapp://"的链接来打开目标应用程序。 4. 传递参数:在URL中添加参数,以便将需要传递给本地应用程序的数据传输过去。可以将参数添加在URL的查询字符串部分,使用"?"符号将URL参数分隔开,并使用"&"符号将多个参数连接起来。 5. 本地应用程序接受参数:在本地应用程序中,通过解析URL获取传递过来的参数。可以使用JavaScript、Objective-C、Java等不同语言来处理URL并获取参数。 6. 处理参数逻辑:根据传递过来的参数,本地应用程序可以执行相应的逻辑处理,比如展示特定的界面、进行数据处理等。 总之,利用URL协议实现网页调用本地应用程序传参,关键是通过自定义的URL协议来建立网页和应用程序的通信桥梁,然后通过URL传递参数,最终由应用程序接受参数并执行相应的逻辑处理。这种方式可以方便地在网页中调用本地应用程序,并实现数据的传递。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值