开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 13727|回复: 51
收起左侧

[2019开源大赛(第四届)] 通过浏览器拉起应用程序【私有協議】 例如:tencent:// steam:// wx:// alipay://

  [复制链接]
结帖率:94% (15/16)
发表于 2019-11-17 13:19:34 | 显示全部楼层 |阅读模式   四川省巴中市
本帖最后由 aoesir 于 2019-11-17 13:46 编辑

各位朋友做协议时应该见过如下url:
  1. tencent://message/?uin=88888&Site=bbs.125.la&Menu=yes
复制代码
在浏览器里打开这个连接,会唤起qq的聊天窗口,并且根据传递的参数88888,打开了与88888的强制聊天窗口,如下图:

xxg

又比如打开浏览器,输入
  1. steam://install/943700
复制代码
居然会唤起steam的安装界面,安装某个游戏。

steam.jpg

是否想知道他们是如何实现的呢?
通过注册表中的探索,发现了秘密:

zc表.jpg

导出注册表查看:

  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\steam]
  3. @="URL:steam protocol"
  4. "URL Protocol"=""

  5. [HKEY_CLASSES_ROOT\steam\DefaultIcon]
  6. @="Steam.exe"
  7. [HKEY_CLASSES_ROOT\steam\Shell]

  8. [HKEY_CLASSES_ROOT\steam\Shell\Open]

  9. [HKEY_CLASSES_ROOT\steam\Shell\Open\Command]
  10. @=""C:\\Program Files (x86)\\Steam\\Steam.exe" -- "%1""
复制代码
原来是在这里的定义了私有协议,我们依葫芦画瓢,来定义一个自己的私有协议“Mofei”吧。
构造一个注册表:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\Mofei]
  3. @="URL:Mofei Protocol Handler"
  4. "URL Protocol"=""

  5. [HKEY_CLASSES_ROOT\Mofei\shell]

  6. [HKEY_CLASSES_ROOT\Mofei\shell\open]

  7. [HKEY_CLASSES_ROOT\Mofei\shell\open\command]
  8. @="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)  ' 返回值被忽略。



2.jpg

将程序编译为test.exe,放置到桌面上(我们事先定义的路径)。

现在,我们打开任意浏览器(大部分浏览器都支持私有协议),输入我们注册的"mofei://hahaha",处于安全考虑,首次使用新注册的私有协议时浏览器程序会先询问是否允许,选择允许即可。

IE.jpg
IE首次.jpg
于是,你看到了如下界面,此时我们自己注册的私有协议就成功的拉起了我们的程序。

IE结果.jpg

firefox和chrome都可以哦:

3.jpg

现在,我们可以取出参数供我们的程序使用。

  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 请在本子程序中放置动态链接库初始化代码
变量名类 型静态数组备 注
aa文本型0
取命令行 (aa)
信息框 (取文本中间 (aa [1], 9, 取文本长度 (aa [1]) - 9), 0, , )
返回 (0)  ' 返回值被忽略。



4.jpg

用firefox来看一下执行结果。

5.jpg

个别浏览器会对传入的中文参数进行url编码,例如chrome,如果你的程序中未判断参数编码,就会造成如下状况,如下演示:

7.jpg

不止是浏览器可以唤起,连windows的资源管理器也可以唤起哦。

6.jpg

甚至连易语言也可以唤起哦。

8.jpg

方法很简单,学而时习之,赶快打开你的易语言自己去试试吧。
简单的应用就是这样了,我们可以通过他来实现各种骚操作。包括但不限于
  1. “传参启动应用程序的某功能模块”
  2. “编写cs端程序,在c端网页里插入<a>标签,执行get或post,完成某些功能,防止浏览器F12抓包”
  3. “打开thunder://连接唤起迅雷下载”
  4. “视频网站中点击【在客户端播放】按钮唤起应用程序播放视频”
  5. “H5网页游戏点击【开始游戏】按钮,唤起本地游戏客户端启动,自动登录账号密码开始游戏”
复制代码

等等功能...这种骚套路可以在你的客户心目中为你加印象分哦。
赶快发动你的小脑袋,想想看还有什么千奇百怪的应用方式,看看该功能是否能契合你的商业项目,动手燥起来吧,骚年。

源码.rar (43.82 KB, 下载次数: 258)

点评

搞不懂的就不用搞懂了,这东西有用,举个例子 比如迅雷下载,特殊URL,或者磁力链接唤起EXE来下载解析等。   黑龙江省齐齐哈尔市  发表于 2019-12-24 18:02
首先,用户需要下载你的exe文件,然后点击zc表的reg,然后在浏览器输入网址拉起!!!用户直接启动多好。搞不懂,不做评论了。   河南省濮阳市  发表于 2019-11-18 23:28
适合网页开发人员调用exe程序   上海市上海市  发表于 2019-11-18 10:51
自定义浏览器协yi。   河北省唐山市   发表于 2019-11-18 09:23

评分

参与人数 21好评 +18 精币 +32 收起 理由
quary888 + 1 + 2 新技能已get√
勤勤学长 + 1 + 2 感谢分享,很给力!~
kissdjmax + 1 原理简单,但感谢共享精神。
进击 + 1 支持开源~!感谢分享
易语言资源网 + 1 + 5 支持开源~!感谢分享
空竹 + 1 新技能已get√
皮皮驴 + 1 + 1 支持开源~!感谢分享
单排练心态 + 1 + 1 支持开源~!感谢分享
yangyitzzg + 1 新技能已get√
我是个帅哥 + 1 + 2 非常有用 已学习
static101 + 1 + 1 感谢分享,很给力!~
呓语丶 + 1 + 2 新技能已get√
|﹎℡若即 + 2 新技能已get√
网络注册网员 + 1 + 1 新技能已get√
kyo9766 + 2 新技能已get√
RES + 1 + 2 新技能已get√
yunying + 1 + 1 新技能已get√
hehehero + 1 + 2 新技能已get√
猫神父 + 1 + 2 写轮眼是很强的技能!
sampo + 1 + 1 新技能已get√
皒是小太阳 + 1 + 2 支持开源~!感谢分享

查看全部评分

本帖被以下淘专辑推荐:

结帖率:92% (49/53)

签到天数: 12 天

发表于 2024-2-23 17:55:59 | 显示全部楼层   江西省上饶市
奇怪 win11 上不生效
回复 支持 反对

使用道具 举报

发表于 2023-7-15 23:10:57 | 显示全部楼层   海南省文昌市
666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:78% (35/45)

签到天数: 4 天

发表于 2022-11-25 22:16:09 | 显示全部楼层   河南省商丘市

新技能已get√
回复 支持 反对

使用道具 举报

发表于 2022-9-9 15:19:10 | 显示全部楼层   广东省广州市
新技能已get√
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2022-9-7 17:43:13 | 显示全部楼层   浙江省杭州市
新技能已get√
回复 支持 反对

使用道具 举报

发表于 2022-1-13 12:16:45 | 显示全部楼层   青海省西宁市
新技能已get√
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2021-9-18 09:07:28 | 显示全部楼层   江苏省南京市
这个厉害了
回复 支持 反对

使用道具 举报

签到天数: 13 天

发表于 2021-7-22 10:14:23 | 显示全部楼层   新疆维吾尔自治区乌鲁木齐市
#在这里快速回复# 自定义浏览器协yi
回复 支持 反对

使用道具 举报

发表于 2021-7-4 19:16:13 | 显示全部楼层   安徽省淮南市
新技能已get√
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表