精易论坛

标题: 通过浏览器拉起应用程序【私有協議】 例如:tencent:// steam:// wx:// alipay:// [打印本页]

作者: 尖叫    时间: 2019-11-17 13:19
标题: 通过浏览器拉起应用程序【私有協議】 例如:tencent:// steam:// wx:// alipay://
本帖最后由 aoesir 于 2019-11-17 13:46 编辑

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



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



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



导出注册表查看:

  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)  ' 返回值被忽略。





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

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



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



firefox和chrome都可以哦:



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

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





用firefox来看一下执行结果。



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



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



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



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

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

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






作者: yoobaby    时间: 2019-11-17 15:35
不错哦==========实用
作者: 易智豪软件    时间: 2019-11-17 15:50
这个不错,保留了
作者: 龍殇    时间: 2019-11-17 16:25
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: 精易小鱼    时间: 2019-11-17 19:09
好家伙,不错不错
作者: sampo    时间: 2019-11-17 20:17
支持开源~!感谢分享
作者: TBit    时间: 2019-11-17 22:02
有意思,谢谢楼主分享
作者: 努力赚钱的猪    时间: 2019-11-17 22:04
真心牛逼的功能
作者: samada01    时间: 2019-11-17 22:35
谢谢分享!
作者: 墨晨    时间: 2019-11-18 08:47
留个眼,回头有时间研究研究。
作者: wuqingg    时间: 2019-11-18 08:58
新技能已get√
作者: shuaier    时间: 2019-11-18 09:14
源给力!给力!给给力!
作者: shinid8210    时间: 2019-11-18 09:59
很强大,脑洞打开
作者: hbtudou    时间: 2019-11-18 10:13
新技能已get√
作者: xtavoxing    时间: 2019-11-18 12:47
不错不错.. 收藏 了
作者: kyo9766    时间: 2019-11-18 14:21
这不可以通过网页拉起程序了,感谢分享
作者: 南方填表    时间: 2019-11-18 18:05
666666666666666
作者: dashang    时间: 2019-11-24 00:49
        支持开源~!感谢分享
作者: alanyang001    时间: 2019-11-25 10:48
#在这里快速回复#支持开源~!感谢分享
作者: 1677568218    时间: 2019-11-29 19:50
前几天刚碰到的问题,卧槽机缘巧合,爱了爱了
作者: 2442295093    时间: 2019-12-4 22:43
支持开源~!感谢分享
作者: 红烧排骨    时间: 2019-12-9 21:23
scheme 跳转 手机常用
作者: 最帅    时间: 2019-12-14 17:49
带上参数和纯打开软件意义完全不一样,楼主的这个挺好的,虽然思路是参考迅雷QQ之类的,但是怎么运用还是要写出来才行
作者: 为你走遍天涯    时间: 2019-12-16 18:19
很有用,非常感谢
作者: aismy    时间: 2019-12-16 21:05
好玩。。。
作者: vSpear    时间: 2019-12-18 10:12
        新技能已get√
作者: cml1990    时间: 2019-12-27 23:22
支持开源~!感谢分享
作者: JOKER♂少特    时间: 2019-12-30 12:58
还是有一定用处的,可以让客户Duan支持拉起.而不是手动去开启,配合成套的网站来使用比较不错.
作者: dashang    时间: 2019-12-31 20:29
        支持开源~!感谢分享
作者: bianyuan456    时间: 2020-1-2 10:51
已经顶贴,感谢您对论坛的支持!
作者: a8816395    时间: 2020-1-17 15:51
非常好用的
作者: hmyroot    时间: 2020-3-8 00:09
牛逼,咁都比你谂到
作者: rainbird    时间: 2020-3-11 07:21
这个厉害了
作者: By末凉    时间: 2020-4-20 17:03
精易模块怎么自行操作zc表来创建表项和键值???????有例子吗
作者: 仙人板板i    时间: 2020-5-6 01:47
怎么能得到tencent://收到的参数呢
作者: Beautiful    时间: 2020-12-13 21:43
很详细,很棒。
作者: Solo98k    时间: 2020-12-16 12:42
感谢分享..............................
作者: xuezicheng    时间: 2020-12-19 00:47
6666666666666666666666666666
作者: 永痕    时间: 2020-12-22 19:18
卧槽这种 也能上,我不服。哈哈 八百年的技术了
作者: qiling0541    时间: 2021-7-4 19:16
新技能已get√
作者: wmv520    时间: 2021-7-22 10:14
#在这里快速回复# 自定义浏览器协yi
作者: hbtudou    时间: 2021-9-18 09:07
这个厉害了
作者: dujandx    时间: 2022-1-13 12:16
新技能已get√
作者: qzser1    时间: 2022-9-7 17:43
新技能已get√
作者: GameRay    时间: 2022-9-9 15:19
新技能已get√
作者: jieqi    时间: 2022-11-25 22:16

新技能已get√
作者: 摸鱼鸽子    时间: 2023-7-15 23:10
666666666666666666666
作者: 空竹    时间: 2024-2-23 17:55
奇怪 win11 上不生效




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4