You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过HTML深度链接打开VLC求助:移除MRL前缀vlcurl

解决自定义URL协议调用VLC时自动移除前缀的问题

解决方案思路

不用编写Lua插件或复杂逻辑,直接修改注册表的协议调用命令,通过PowerShell预处理传入的URL,移除vlcurl:前缀后再启动VLC。

完整PowerShell脚本

# 请根据你的VLC实际安装路径修改下面的路径
$vlcExePath = "C:\Program Files\VideoLAN\VLC\vlc.exe"
$customProtocol = "vlcurl"

# 创建/更新注册表项(针对当前用户,无需管理员权限)
New-Item -Path "HKCU:\Software\Classes\$customProtocol" -Force | Out-Null
New-Item -Path "HKCU:\Software\Classes\$customProtocol\shell\open\command" -Force | Out-Null

# 设置协议基础属性
Set-ItemProperty -Path "HKCU:\Software\Classes\$customProtocol" -Name "(Default)" -Value "URL:$customProtocol 协议" -Force
Set-ItemProperty -Path "HKCU:\Software\Classes\$customProtocol" -Name "URL Protocol" -Value "" -Force

# 设置核心调用逻辑:用PowerShell移除前缀后启动VLC
$commandValue = "powershell.exe -Command `"Start-Process '$vlcExePath' -ArgumentList (`"%1`" -replace '^$customProtocol:', '')`""
Set-ItemProperty -Path "HKCU:\Software\Classes\$customProtocol\shell\open\command" -Name "(Default)" -Value $commandValue -Force

Write-Host "注册表配置已完成!现在点击vlcurl链接将自动移除前缀并打开VLC播放视频"

使用说明

  1. 检查脚本中的$vlcExePath路径,确保和你电脑上VLC的安装路径一致(比如32位系统可能是C:\Program Files (x86)\VideoLAN\VLC\vlc.exe)
  2. 直接运行该PowerShell脚本(无需管理员权限,因为修改的是当前用户的注册表分支)
  3. 再次点击HTML中的<a href="vlcurl:http://127.0.0.1:5500/ship.mp4">Video</a>链接,VLC就能正确识别并播放目标视频了

原理说明

原来的注册表配置直接将带vlcurl:前缀的完整字符串传给VLC,VLC无法识别这个自定义协议前缀导致报错。现在通过PowerShell作为中间处理层:

  • 接收点击链接时传入的%1参数(即vlcurl:http://xxx)
  • 用正则替换-replace '^vlcurl:', ''移除开头的前缀
  • 启动VLC并传递处理后的正常HTTP URL

内容的提问来源于stack exchange,提问作者Hródvitnir_Fenrir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 14:28:19