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

第一步写入注册表
@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则参见

各位朋友做协议时应该见过如下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的资源管理器也可以唤起哦。 甚至连易语言也可以唤起哦。 方
浏览器可以通过web页面上的按钮来唤起electron的桌面应用程序。这可以通过在web页面上定义一个按钮,并使用特定的代码来实现。代码会触发电子应用程序的启动,并传递特定的参数。例如,可以通过在web页面上的按钮上添加一个链接,比如"link://postman",当用户点击这个链接时,电子应用程序将被启动并显示当前的页面。 为了实现这个功能,你可以在浏览器应用中使用electron的API来创建一个简单的浏览器窗口,然后通过在web页面上添加按钮来触发这个窗口的打开操作。在代码中,你可以使用electron的webContents和ipcRenderer模块来处理页面间的通信和参数传递。具体的实现细节可以参考相关的电子应用程序开发文档和教程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [electron做一个丐版浏览器,只有输入网址显示网页的功能,适合学习](https://download.csdn.net/download/m0_37816922/85278023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [electron应用通过web页面按钮唤醒](https://blog.csdn.net/baidu_40294156/article/details/125662614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值