Windows平台添加自定义协议关联

在微软Windows 8以上平台浏览器中使用第三方协议关联,浏览器将询问关联使用的程序。建立关联后,再次点击同一个第三方协议,将启动该程序并将protocol:// 中信息传递给程序处理。

但是现实中,由于应用程序抢占关联、微软应用商店中存在默认程序等问题,可能无法正确建立或修改第三方协议的关联程序。

在这个案例里,rtsp协议被一个叫“mvp.net”的微软商店里的应用抢占,无法修改。即使删除这个应用,在控制面版里还是改不了。我的要求是使用自己安装的VLC 或者KMPlayer来启动rtsp:// 这就产生了问题。

在网上查了一圈,可以改注册表。但是Windows 8 以后的系统修改的地方有所不同,这里测试了Windows10/11 的注册表改法。

HEKY CLASSES ROOT

新建 HKEY_CLASSES_ROOT\rtsp (”rtsp” 为协议名称,需要与rtsp:// 链接中的符号一致)

默认键值为 rtsp

新建键值 URL Protocol 内容为你需要处理该协议程序的绝对地址,不带引号

设置URL协议处理程序绝对路径

下面的项Default Icon 可以不要,那是在控制面板里指定协议默认应用时的默认图标,既然控制面板都用不了,也没必要用这个了。

新建 HKEY_CLASSES_ROOT\rtsp\shell

下面建立子项

HKEY_CLASSES_ROOT\rtsp\shell\open\command

在 HKEY_CLASSES_ROOT\rtsp\shell\open\command 中把默认键值改成 需要处理该协议程序的绝对地址<空格> "%1"

在浏览器中再次点击 “rtsp://” 的协议,成功激活VLC。