尝试将自定义协议添加vlc:///
到我的 Windows 8 系统,以便使用该协议的超链接将在 VLC 而不是浏览器中打开文件。它确实尝试打开文件,但 VLC 表示无法打开 MRL。我检查了消息区域,但没有看到任何日志。我如何让 VLC 接受该协议?
我做了什么:
- 打开 regedit,然后导航到
HKEY_CLASSES_ROOT
。 - 右击
HKEY_CLASSES_ROOT
,创建一个名为 的新项vlc
。 - 点击
vlc
,然后打开(Default)
其中的条目。 - 在
(Default)
类型中"URL:VLC Protocol"
。 - 右击
HKEY_CLASSES_ROOT/vlc
,创建一个名为 的新项Url Protocol
。 - 右击
HKEY_CLASSES_ROOT/vlc
,创建一个名为 的新项Default Icon
。 - 进去
HKEY_CLASSES_ROOT/vlc/Default Icon
,打开(Default)
,然后进入其中"vlc.exe,1"
。 - 在中
HKEY_CLASSES_ROOT/vlc
创建一个名为 的新键shell
,在其中创建一个名为 的键open
,在其中创建一个名为 的键command
,然后打开该(Default)
条目。 - 在条目中输入
"C:\Program Files (x86)\Video LAN\VLC Media Player\vlc.exe" "%1"
。 website
在驱动器上创建一个名为 的文件夹c:
,并添加一个名为 的文件example.mp4
和一个名为 的 HTML 文件example.html
。- 在 html 文件类型中:
<a href="vlc:///C:/website/example.mp4">Example Link</a>
。 - 通过使用该协议打开链接、浏览 VLC 并将其设置为始终使用,将协议与 VLC 关联。
答案1
正如 Daniel B 在评论中所说,问题不在于我如何设置协议,而在于 VLC 不知道如何使用它。解决方案是将输出定向到批处理脚本而不是 VLC。批处理脚本将输出转换为可用内容,然后启动 VLC。
我还决定不使用“vlc”作为协议名称,因为 vlc 的命令行界面在某些情况下使用它,所以我使用“cvlc”。
脚步:
- 打开 regedit,然后导航到
HKEY_CLASSES_ROOT
。 - 右击
HKEY_CLASSES_ROOT
,创建一个名为 的新项cvlc
。 - 点击
cvlc
,然后打开(Default)
其中的条目。 - 在
(Default)
类型中"URL:CVLC Protocol"
。 - 右击
HKEY_CLASSES_ROOT/cvlc
,创建一个名为 的新项Url Protocol
。 - 右击
HKEY_CLASSES_ROOT/cvlc
,创建一个名为 的新项Default Icon
。 - 进去
HKEY_CLASSES_ROOT/cvlc/Default Icon
,打开(Default)
,然后进入其中"vlc.exe,1"
。 - 在中
HKEY_CLASSES_ROOT/cvlc
创建一个名为 的新键shell
,在其中创建一个名为 的键open
,在其中创建一个名为 的键command
,然后打开该(Default)
条目。 - 在条目中输入
"C:\convert.bat" "%1"
。 - 打开记事本,创建一个文本文件,内容如下:
:: 此批处理脚本接受输入并从前面删除 8 个字符,然后使用修改后的 ::输入设置为文件路径 设置 vlcdata=%1 “C:\Program Files (x86)\Video LAN\VLC Media Player\vlc.exe” “%vlcdata:~8%”
- 将其保存为所有文件类型,名称
convert.bat
为C:\
。 - 第一次在 Firefox 中打开链接时,您需要通过浏览该协议并将其与 bat 文件关联起来,然后选择在将来记住。
website
在驱动器上创建一个名为的文件夹c:
,添加一个名为的文件example.mp4
和一个名为的 HTML 文件example.html
。- 在 HTML 文件类型中:
<a href="cvlc:///C:\website\example.mp4">Example Link</a>
。
笔记:
- 因为这使用了批处理脚本,所以将会打开一个命令提示符窗口,并且直到 VLC 关闭后它才会关闭。
- 在超链接中使用本地文件时,必须使用
\
not/
。 - 这在 Firefox 中有效,但在 Internet Explorer 中无效,因为该协议不在 Windows 协议和文件类型列表中。因此 Internet Explorer 不知道要使用什么程序。我确实找到了一个关于将自定义协议添加到 Windows 文件类型和协议关联列表的线程,但尚未解决。https://stackoverflow.com/questions/186723/how-to-add-custom-protocol-to-vista-set-associations-list