• 浏览器自定义协议


    查看协议和文件类型的默认应用

    Win + I -> 应用 -> 默认应用,按协议指定默认应用。
    image
    可以看到有些程序自定义协议在里面,并且可以设置打开此协议的程序,但是并没有发现可以新增协议。只能通过注册表来解决。
    image

    自定义浏览器协议

    chrome浏览器用到了自定义浏览器协议这一标准。自定义浏览器协议允许在浏览器中使用protocol://url
    的形式进行调用本地程序。包括在网页上拉起百度云网盘、或者拉起QQ等等,都属于自定义浏览器协议。

    原理分析

    在通过浏览器调用外部程序时,浏览器会在我们本地的注册表中查找协议所对应的注册表,并获取实际要调用的程序路径进行调用。
    例如

    rtsp://callback/?id=opaqueInternalAccesssObj
    

    rtsp://为我们自定义的浏览器协议,后面的callback/?id=opaqueInternalAccessObj则为实际传入的参数

    注册表解析

    新建一个rtsp.reg文件,输入如下内容

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT
    tsp]
    @="RTSPLoader Plugin"
    "URL Protocol"="C:\Program Files\VideoLAN\VLC\vlc.exe"
    
    [HKEY_CLASSES_ROOT
    tspshell]
    
    [HKEY_CLASSES_ROOT
    tspshellopen]
    
    [HKEY_CLASSES_ROOT
    tspshellopencommand]
    @="C:\Program Files\VideoLAN\VLC\vlc.exe %1"
    

    双击运行后在浏览器中输入rtsp://后会提示是否打开RTSPLoader Plugin(实则是打开Windows Shell)。

    参数解析

    1. [HKEY_CLASSES_ROOT] 是应用程序运行时必须的信息,[HKEY_CLASSES_ROOT tsp]表示在该注册表目录下生成了一个rtsp的应用程序运行时必须的信息。
      @=为该应用程序默认名称,用来显示程序名称,不填则为exe名称。
      URL Protocol=为该协议所要调用的程序地址。

    2. [HKEY_CLASSES_ROOT tspshell]在rtsp下生成shell目录。

    3. [HKEY_CLASSES_ROOT tspshellopen]在rtspshell下生成open目录。

    4. [HKEY_CLASSES_ROOT tspshellopencommand]在rtspshellopen下生成command目录,@=在command目录下新建一个默认值为协议调用程序的实际路径。%1代表rtsp://后面跟的参数。

    注册表效果

    输入地址: 计算机HKEY_CLASSES_ROOT tsp,可以看到调用rtsp的程序名设置,和调用rtsp协议的默认程序(URL Protocol)
    image
    最终执行命令及参数
    image

    点击页面的rtsp超链接,提示用VLC media player打开。
    image
    image
    参考:
    https://blog.csdn.net/lu_wei_wei/article/details/61421270
    https://veryfirefly.github.io/custom-external-protocol-副本/

    如果这篇文章对你有用,麻烦关注一下本人微信公众号,关注送福利哦~
    微信公众号二维码
    不定期安利各种插件,编程技巧,编程思想,欢迎交流~
  • 相关阅读:
    ALhoViMwaR
    lenovo anti-virus powered by Intel security保护已过期
    python Module turtle has no circle member解决办法
    为什么电脑打出来都是繁体字
    python 学习笔记(七)(函数)
    python 写汉诺塔移动过程
    python 学习笔记(六)(dict,set)
    Vue CLI组件循环引用踩坑,组件未注册问题
    vue package.json脚本赋值变量
    linux服务器安装node环境及项目部署
  • 原文地址:https://www.cnblogs.com/aeolian/p/14808772.html
Copyright © 2020-2023  润新知