win系统,如何通过伪协议唤起本地exe程序?
发布于 作者:苏南大叔 来源:程序如此灵动~
腾讯QQ可以从网页上唤起客户端的事情,大家一定并不陌生。实际上,如果大家仔细研究一下的话,就会发现,这些功能都是通过注册伪协议而实现的。这些伪协议有:mqqapi,qimapi等等。这些伪协议就可以实现,在网页上唤起本地的exe程序了。
那么,本文中,苏南大叔将要讲述:在win系统下,伪协议的实现方式。
本文测试环境:win10、regedit@5.00。
原理描述
在win系统下,这种伪协议就是通过修改注册表来实现的。
具体的注册表项目路径有两个:
HKEY_CLASSES_ROOT\sunan\shell\open\commandHKEY_CURRENT_USER\Software\Classes\sunan\shell\open\command
注意:
- 上述路径中的
sunan字样,就是自定义的伪协议名称。 - 或者这么描述,注册表路径带有
shell\open\command的,都是伪协议。
注册表文件
注册这个伪协议的方法就是导入注册表,当然,您用任何方式方法操作注册表都可以。终极目标就是建立对应键值:
下面的注册表文件,可以注册一个名为sunan的协议,然后最终打开一个自定义的exe文件。
下面演示的注册表路径为HKEY_CURRENT_USER\Software\Classes\,即当前用户生效。Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\sunan]
@="URL:sunan"
"URL Protocol"=""
[HKEY_CURRENT_USER\Software\Classes\sunan\shell]
[HKEY_CURRENT_USER\Software\Classes\sunan\shell\open]
[HKEY_CURRENT_USER\Software\Classes\sunan\shell\open\command]
@="\"Z:\\code\\electron\\electron-quick-start.exe\" \"%1\""接下来要演示的是:通过ed2k://伪协议唤起迅雷的注册表文件:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\ed2k]
"URL Protocol"=""
[HKEY_CURRENT_USER\Software\Classes\ed2k\Shell]
[HKEY_CURRENT_USER\Software\Classes\ed2k\Shell\Open]
[HKEY_CURRENT_USER\Software\Classes\ed2k\Shell\Open\command]
@="\"C:\\Program Files (x86)\\Thunder Network\\Thunder\\Program\\Thunder.exe\" \"%1\" -StartType:ed2k"使用方法
这个伪协议在html中的使用方法是很简单的,和普通的http协议是一样的,写链接即可。例如:
<a href='sunan://demo'>测试链接</a>相关链接
- 《网页代码唤起qq加群界面方案大全》
https://newsn.net/say/qq-qun-123.html
总结
这种伪协议的方式,在各种操作系统中都普遍存在。但是不同的系统中,实现的原理是不一样的。本文中,苏南大叔仅仅展示的是在win系统中,伪协议的实现方式。更多的相关资料内容,大家可以查看下面的链接:



