自定义协议通过浏览器唤起本地exe

浏览器唤起本地EXE程序:自定义URI协议与Windows注册表实战指南 在Web应用与桌面软件混合架构中,实现浏览器安全唤起本地可执行程序并传递参数,是一项连接Web轻便性与桌面应用强大能力的关键技术。其核心原理依赖于自定义URI协议与操作系统注册表机制的协同工作。通过注册一个类似“myapp://”的自定义协议,开发者可以建立浏览器到本地应用的通信桥梁。这项技术的核心价值在于,它使得B/S架构的应用能够突破Web沙箱限制,无缝集成需要高性能计算、深度硬件访问或复杂图形处理的本地功能,从而在内部管理系统、专业设计工具、数据采集平台等场景中实现高效的混合应用体验。本文聚焦于“注册 阅读详情
第一步写入注册表
@echo off
echo =====================注册打印控件===================
echo 注册打印控件到注册表,360等杀毒软件误报请“允许运行”
echo ====================================================
echo 请按任意键开始注册
pause>nul
set v=%~dp0
echo Windows Registry Editor Version 5.00 >regist.reg
echo [HKEY_CLASSES_ROOT\myprotocol] >>regist.reg
echo "URL Protocol"="%v:\=\\%myapp.exe" >>regist.reg
echo @="myprotocol" >>regist.reg
echo [HKEY_CLASSES_ROOT\myprotocol\DefaultIcon] >>regist.reg
echo @="%v:\=\\%myapp.exe,1" >>regist.reg
echo [HKEY_CLASSES_ROOT\myprotocol\shell] >>regist.reg
echo [HKEY_CLASSES_ROOT\myprotocol\shell\open] >>regist.reg
echo [HKEY_CLASSES_ROOT\myprotocol\shell\open\command] >>regist.reg
echo @="\"%v:\=\\%myapp.exe\" \"%%1\"" >>regist.reg
regedit /s %v%regist.reg
del /q regist.reg
echo 打印控件注册成功,按任意键退出
pause>nul

将上述代码复制到本地,新建一个text文件,将内容复制进去,保存为bat文件。
注意要将这个tab文件和需要打开的exe文件放在同一文件夹下,而且要替换上文的myapp.exe为要打开的exe!
注意要将这个tab文件和需要打开的exe文件放在同一文件夹下,而且要替换上文的myapp.exe为要打开的exe!
注意要将这个tab文件和需要打开的exe文件放在同一文件夹下,而且要替换上文的myapp.exe为要打开的exe!

在这里插入图片描述
文件打开如果乱码不用理会,按任意按钮两次即可。

如果360等提示,请点击允许。

第二步应用打开
function myAppTest() {
    window.location = 'openmyapp://openAppTestParams';
}

在这里插入图片描述
也可以直接这样

<li><a href="myprotocol://key" target="_black">打开本地exe2</a></li>

success
在这里插入图片描述

附录

1.传参
传参参见
2.chrome的限制问题
建议用ie或者360浏览器,如果用chrome则参见

浏览器一键唤起本地exe:自定义协议注册与实战避坑指南 自定义协议是一种让操作系统识别特定URL Scheme并分发到本地程序的技术,其原理是通过注册表或Info.plist声明协议与可执行文件的映射关系。在Web开发中,它打通了浏览器沙箱与本地进程的边界,使网页能够安全地触发本地应用,技术价值在于无需常驻后端服务即可实现轻量级系统集成。典型应用场景包括企业内部工具、本地设备控制面板以及需要从浏览器唤起客户端的业务系统。前端通过window.location.href触发协议URL,操作系统解析后启动exe并传递参数,但需注意浏览器安全策略与参数校验。本文以Ja 阅读详情

相关推荐

浏览器一键唤起本地exe:自定义URL协议实战指南

自定义URL协议是一种让浏览器与本地系统通信的机制,通过注册表将特定协议前缀绑定到本地程序,实现网页触发桌面应用。其原理是浏览器发起协议跳转,操作系统根据注册表配置启动对应exe并传递参数。这项技术价值在于打通Web与桌面生态,扩展Web应用能力,适用于网页调用本地打印、录音、业务客户端等场景。本文详细拆解了自定义URL协议从注册表配置、前端触发到参数传递的完整链路,并分享实战避坑经验,帮助开发者快速实现浏览器唤起本地程序。

weixin_29012765的博客 233

浏览器启用本地exe应用程序

使用HTM文件:将exe应用程序的路径添加到HTML文件中,然后在浏览器中打开该HTML文件!

Front小思的博客 7878

浏览器如何拉起本地exe?自定义URL Scheme从原理到实践

浏览器基于安全沙箱机制,无法直接访问本地文件或执行可执行程序。但借助操作系统注册的自定义协议(如 myapp://),网页可以间接唤起本地exe,实现点击按钮即打开客户端、编辑器或内部工具等场景。其核心原理是:浏览器将协议URL交由操作系统,系统依据注册表映射找到对应程序并启动。前端JavaScript通过 location.href 或 iframe 等方式发起调用,并处理参数编码与失败检测。除自定义协议外,本地HTTP服务桥接也是常用备选方案,适用于需要持续通信的业务场景。通过一个可运行的demo拆解注

weixin_29001327的博客 329

WEB项目通过浏览器打开windows上的exe应用

通过本次需求,学到了浏览器打开exe应用的技术,收益颇多。大家有类似需求的快试试吧。

G_whang的博客 6662

从浏览器一键唤起本地exe:Web调Windows程序的URL Protocol方案

现代浏览器安全模型禁止网页直接操作操作系统API,但通过自定义URL Protocol结合Windows注册表机制,可以实现像mailto:一样的协议跳转,由系统将请求转发给本地接收程序。这一方案无需常驻进程、部署成本极低,是ERP/MES页面中唤起打印、扫码、识别等本地工具的主流技术路径。其核心链路涉及浏览器沙箱、ShellExecute、注册表映射和参数编码,前端通过隐藏iframe触发协议导航,接收端解析并解码完整URL后启动目标程序。针对中文路径乱码、弹窗拦截、静默启动等工程常见问题,本文提供从协议

weixin_32247165的博客 276

浏览器调用本地exe:自定义URL协议与WebSocket双向通信实战

自定义URL协议是一种通过注册表将浏览器链接映射到本地应用程序的技术,其原理是利用操作系统对协议头的识别来启动外部进程。在Web开发中,该技术能突破浏览器沙箱限制,实现网页对本地硬件或工具链的调用,适用于企业内部系统、报表打印、读卡器等场景。结合本地WebSocket服务,还可实现双向通信与数据回传。本文围绕web调用本地应用程序的完整示例,详解注册表配置、参数解析、单实例控制及安全防护,并给出避坑排查指南。

weixin_29014237的博客 299

网页(浏览器)调用本地exe应用软件

通过网页调用本地exe软件,比如QQ或者百度网盘等,如果你机器本地已经有exe了,在网页上会直接去把你机器本地的exe给调起来。

记录学习的日子 1万+

网页一键唤起本地exe:自定义URL Protocol原理与前端实战指南

浏览器安全模型通常禁止网页直接操作本地程序,但在企业OA、后台管理等场景中,经常需要从网页一键唤起本地的扫描仪客户端、企业微信或内部工具。通过Windows自定义URL Protocol机制,前端无需安装插件即可实现跨浏览器唤起exe。其核心原理是在注册表中注册私有协议头,将完整URL作为命令行参数传递给本地程序。该方案兼容Chrome、Edge、Firefox,配合隐藏iframe与blur事件可实现无感唤起与状态检测。相比ActiveX和WebSocket桥接,它兼顾了实现成本与交互体验,尤其适合工具类

weixin_32956805的博客 328

web网页浏览器唤起wpf,winform exe桌面程序,并跳转到指定页面

web网页浏览器调用唤起wpf,winform exe桌面程序,并跳转到指定页面

qq_40127027的博客 3179

网页调用本地exe:URL协议、本地服务与原生消息三条路线

浏览器安全拉起本地可执行程序,是Web调用本地应用程序的常见需求,但浏览器并不直接执行exe,而是依赖系统或内核提供的受控通道。其原理通常有三类:通过注册表登记自定义URL协议,由系统Shell解析并唤起进程;在127.0.0.1启动本地HTTP服务,以回环通信实现请求响应;或使用浏览器原生消息通道,由扩展与本地宿主按长度前缀帧交换数据。技术价值在于把网页与桌面能力解耦,兼顾安装门槛、返回值和双向推送。典型场景包括内网工单调读卡器、打印工具、文件处理与桌面客户端联动。围绕这些路线,web调用本地应用程序.z

weixin_31896061的博客 272

浏览器调用本地EXE:Windows自定义协议实战指南

自定义URL协议(如myapp://)是Web前端与本地程序安全交互的基础机制,其原理基于操作系统级的协议注册与浏览器受控跳转,绕过沙箱限制的同时严格遵循用户手势触发、HTTPS/localhost安全上下文等核心规则。该技术具备轻量、免插件、可审计等工程优势,广泛应用于内网设备管理、硬件调试Web界面及嵌入式工控看板等可信场景。本文聚焦Windows平台下myapp://协议注册、launcher.exe参数解析与前端触发闭环,覆盖URL编码解码、路径白名单校验、中文兼容性及跨浏览器降级等关键实践要点。

weixin_30582943的博客 202

网页调用本地exe 文件执行,vue,js,react都可,各个浏览器都可以执行

前端网页调用exe文件,js调用执本地exe文件,js执行exe文件,vue,js,react都可以使用。写入注册表,记事本或其他文本编译文件命名 testPB.reg写入内容如果路径不正确或没写入进去,返回第二步,重新检查写入的内容,是否少\ " \ 等符号,及exe文件存放的路径。红色圈起来的进行自定义命名,此名字在后续调起exe文件时会使用到,注册表中的名字也会是这个。查看路径是否正确,DefaultIcon和command中的都需要查看。圈起来的是exe文件存放路径,修改为自己的exe文件存放路径。

m0_55074611的博客 3646

网页一键唤起本地软件:自定义URL协议与注册表实现详解

浏览器与本地桌面程序之间的交互,一直是Web工程中的实用能力。借助自定义URL协议,网页可以像调用接口一样唤起本机应用,其核心原理是让浏览器将非HTTP协议的链接交给操作系统,根据注册表中预置的命令去启动可执行文件。这套机制不需要复杂插件,只需掌握协议名注册、命令行参数占位符等基础概念,就能实现文件路径、业务参数的一键传递。在实际落地中,参数编码、中文乱码、浏览器安全拦提到系统访问控制等问题都会直接影响链路稳定性。该技术适合企业内网工具、扫描仪联动、文档处理等场景,通过合理的注册表配置与来源校验,可在低成本

weixin_34116482的博客 171

chorme唤起Java开发的本地程序全采坑记

chorme唤起Java开发的本地程序全踩坑记 背景说明 在开发企业web应用时,往往需要进行订单通知,状态通知,或者需要一些插件式本地应用来扩展一些网页 实现不了的功能等。以通知为例:如果网页标签页或者浏览器切出去了,意味着网页内部的通知是业务员无 法感知到的。所以如何做到有效的系统通知功能。是需要去考虑的。2B的系统有一点比较好的是,往往可以 限定系统以及浏览器,这也给开发减少了不少难度。 那么读完本文您将学到什么。 1.网页外的系统通知方案 2.Java开发本地应用程序并形成可安

weixin_43834425的博客 1236

通过浏览器拉起应用程序(私有协议)-易语言

各位朋友做协议时应该见过如下url: tencent://message/?uin=88888Site=bbs.125.laMenu=yes 复制代码 在浏览器里打开这个连接,会唤起qq的聊天窗口,并且根据传递的参数88888,打开了与88888的强制聊天窗口,如下图: 又比如打开浏览器,输入 steam://install/943700 复制代码 居然会唤起steam的安装界面,安装某个游戏。 是否想知道他们是如何实现的呢? 通过注册表中的探索,发现了秘密: 导出注册表查看: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\steam] @="URL:steam protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT\steam\DefaultIcon] @="Steam.exe" [HKEY_CLASSES_ROOT\steam\Shell] [HKEY_CLASSES_ROOT\steam\Shell\Open] [HKEY_CLASSES_ROOT\steam\Shell\Open\Command] @="\"C:\\Program Files (x86)\\Steam\\Steam.exe\" -- \"%1\"" 原来是在这里的定义了私有协议,我们依葫芦画瓢,来定义一个自己的私有协议“Mofei”吧。 构造一个注册表: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Mofei] @="URL:Mofei Protocol Handler" "URL Protocol"="" [HKEY_CLASSES_ROOT\Mofei\shell] [HKEY_CLASSES_ROOT\Mofei\shell\open] [HKEY_CLASSES_ROOT\Mofei\shell\open\command] @="C:\\Users\\Administrator\\Desktop\\test.exe \"%1\"" 以上代码中"Mofei"为需要注册的协议名,例如Tencent/steam。 下面的 HKEY_CLASSES_ROOT\Mofei\shell\open\command的键值“ C:\\Users\\Administrator\\Desktop\\test.exe ”为要处理的程序的路径。 可以将以上代码通过记事本保存为xx.reg,双击此注册表文件导入。也可以通过精易模块 自行操作注册表来创建表项和键值。 此一步的目的是告诉windows,假如计算机请求的url是以"mofei://"为开头,就交给注册表中用户自定义的程序来处理,且整个请求的url内容作为启动参数,传递给应用程序。 例如在你的浏览器中打开 "mofei://hahaha",此时windows将会启动我们设定的test.exe程序,并且将"mofei://hahaha"作为启动参数传递给test.exe。 现在我们启动易语言 ,新建一个空白无窗口程序,写下如下代码: 窗口程序集名 保 留 保 留 备 注 程序集1 子程序名 返回值类型 公开 备 注 _启动子程序 整数型 请在本子程序中放置动态链接库初始化代码 变量名 类 型 静态 数组 备 注 aa 文本型 0 取命令行 ( aa) 信息框 ( aa[ 1] , 0, ,) 返回 ( 0) ' 返回值被忽略。 将程序编译为test.exe,放置到桌面上(我们事先定义的路径)。 现在,我们打开任意浏览器(大部分浏览器都支持私有协议),输入我们注册的"mofei://hahaha",处于安全考虑,首次使用新注册的私有协议时浏览器程序会先询问是否允许,选择允许即可。 于是,你看到了如下界面,此时我们自己注册的私有协议就成功的拉起了我们的程序。 firefox和chrome都可以哦: 现在,我们可以取出参数供我们的程序使用。 窗口程序集名 保 留 保 留 备 注 程序集1 子程序名 返回值类型 公开 备 注 _启动子程序 整数型 请在本子程序中放置动态链接库初始化代码 变量名 类 型 静态 数组 备 注 aa 文本型 0 取命令行 ( aa) 信息框 ( 取文本中间 ( aa[ 1] , 9,取文本长度 ( aa[ 1] ) - 9) , 0, ,) 返回 ( 0) ' 返回值被忽略。 用firefox来看一下执行结果。 个别浏览器会对传入的中文参数进行url编码,例如chrome,如果你的程序中未判断参数编码,就会造成如下状况,如下演示: 不止是浏览器可以唤起,连windows的资源管理器也可以唤起哦。 甚至连易语言也可以唤起哦。 方

谷歌浏览器中调用本地EXE文件的方法

资源下载链接为: https://pan.quark.cn/s/67c535f75d4c “浏览器调用本地EXE,试用于谷歌浏览器”是一种技术,允许谷歌浏览器(Google Chrome)通过特定方式启动本地的可执行文件(.exe程序)。这种技术常用于扩展浏览器功能或实现定制化交互操作。然而,在互联网安全日益重要的当下,该功能涉及权限控制和安全风险,需谨慎使用。 “通过注册表实现”是指通过修改Windows系统的注册表来配置这一功能。注册表是Windows系统存储配置信息的重要数据库,涵盖软件设置、硬件配置等。通过在注册表中添加特定键值,可以告诉浏览器如何及何时调用本地的.exe文件。其灵活性在于,一旦注册表配置正确,只需一次设置,浏览器就能根据需要调用不同的.exe文件,只需传递不同参数即可。标签“浏览器调EXE”强调了这一技术的核心:浏览器作为触发者,执行本地的可执行程序,可应用于自动化任务、数据处理、外部应用交互等场景。 通常,实现该功能的步骤如下:1. 在HKEY_CLASSES_ROOT或HKEY_LOCAL_MACHINE的子键下创建新注册表项,代表.exe程序;2. 将新注册表项的默认值设为.exe程序的名称或类ID;3. 在注册表项下创建名为“Shell”的子键,再在其下创建名为“Open”的子键,表示打开操作;4. 在“Open”子键下创建名为“Command”的字符串值,其数据为.exe文件的完整路径及启动参数;5. 确保浏览器有权限访问和执行.exe文件,并考虑安全风险。 在实际操作中,需注意以下几点:一是安全考量,调用的.exe文件必须可信,避免安全威胁;二是用户权限,非管理员用户可能无法修改注册表,需考虑权限差异;三是兼容性问题,该方法可能不适用于所有浏览器,尤其是严格限制JavaScript或插件执行行为的现代浏览器;四是错误处理,需考虑.exe

windows,web端网页唤起打开本地的客户端程序

打开飞书

wulijuan888666的博客 2302

GD32F105RBT6 keil工程模板

创建GD32F105RBT6的keil初始基础工程,未来的所有外设驱动都是基于这个基础工程进行扩展。

RMDYBW的博客 1926

Python打包成exe后如何在浏览器一键调用?手把手教你自定义URL协议

本文详细介绍了如何将Python应用打包成exe后,通过自定义URL协议实现从浏览器一键调用。文章涵盖使用PyInstaller打包、Windows注册表配置自定义协议、前端调用方法及跨浏览器兼容性处理,提供了完整的实战代码和解决方案,帮助开发者打通Web与本地程序的无缝连接。

m3n5b7v8c9x的博客 875

SuperPoint + LightGlue实战:低纹理墙面重建保姆级教程(附完整代码)

本文提供了一份针对低纹理墙面三维重建的实战教程。通过详细解析SuperPoint与LightGlue的核心参数调优,指导读者如何有效提取并匹配低纹理目标的特征点,并结合COLMAP完成从稀疏到稠密的重建流程,最终实现高精度建模。

weixin_29034963的博客 223

Cursor插件安装CodeX保姆级教程:从登录到调整面板布局,一步不落

本文提供Cursor编辑器安装CodeX插件的详细教程,涵盖从登录到调整面板布局的全流程。通过优化界面布局和配置参数,帮助开发者提升编码效率,特别适合需要智能代码补全的编程场景。

weixin_42648844的博客 4755
上一篇: vue-lice3项目利用DLLPlugin 和 DLLRe组件,大幅提高wbpack打包速度
下一篇: 处理Arcmap中小班数据,导入bigmapserver中使用
汪小君
博客等级 码龄12年 120粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值