- 找到VLC播放器安装目录
例(默认一般在C盘):
D:\work\soft\VLC
- 编写注册表:
例(udp.reg)
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\udp]
@="URL:udp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\udp\DefaultIcon]
@="D:\\work\\soft\\VLC\\web_player.ico"
[HKEY_CLASSES_ROOT\udp\shell]
[HKEY_CLASSES_ROOT\udp\shell\open]
[HKEY_CLASSES_ROOT\udp\shell\open\command]
@="\"D:\\work\\soft\\VLC\\vlc.exe\" \"%1\""
- 双击执行注册表文件,这样在浏览器打开: udp://....开头的流地址会自动弹起浏览器提醒,确认即可拉起VLC播放流地址
- 为自动化完成上述步骤, 编写find_vlc_exe.bat脚本
@echo off
REM 获取当前脚本的执行路径
set "current_path=%~dp0"
echo 当前脚本的执行路径: %current_path%
setlocal enabledelayedexpansion
:: 定义要搜索的文件名
set filename=vlc.exe
set VLC_PATH=
:: 提示用户输入VLC的路径(可选)
echo 请输入VLC的目录(不含vlc.exe) 或 直接回车进入自动搜索:
set /p user_input=
echo 用户输入VLC目录: [%user_input%]
:: 检查用户输入是否为有效路径
if not "%user_input%"=="" (
:: 去除输入字符串前后的空格
:loopa
if "%user_input:~0,1%"==" " (
set "user_input=%user_input:~1%"
goto loopa
)
:loopb
if "%user_input:~-1%"==" " (
set "user_input=%user_input:~0,-1%"
goto loopb
)
echo 用户输入VLC路径: [%user_input%]
:: 暂停脚本,用户确认输入信息按任意键继续
echo 确认输入信息,Ctrl+C退出执行
pause
if exist "%user_input%\%filename%" (
set "VLC_PATH=%user_input%\%filename%"
echo 已使用指定的VLC路径: [%VLC_PATH%]
) else (
echo 未使用指定的VLC目录: [%user_input%] ,不存在文件[%filename%], 将自动搜索。
set "user_input="
)
)
:: 如果未使用用户指定的路径或指定的路径无效,则自动搜索
if not defined VLC_PATH (
echo 正在自动搜索vlc.exe...
:: 遍历指定的盘符
for %%d in (C D E F G H I J K) do (
echo Searching in drive: %%d:\
for /f "delims=" %%p in ('where /r %%d:\ %filename% 2^>nul') do (
set VLC_PATH=%%p
echo Found: !VLC_PATH!
goto :end_search
)
)
)
:end_search
:: 检查是否找到文件
if defined VLC_PATH (
echo VLC全路径: [!VLC_PATH!]
:: 初始化变量
set "VLC_PATH_DOUBLE="
:: 替换单个反斜杠为双反斜杠
set "VLC_PATH_DOUBLE=%VLC_PATH:\=\\%"
echo 注册表VLC全路径: [!VLC_PATH_DOUBLE!]
> temp_vlc_protocols_reg.reg echo Windows Registry Editor Version 5.00
echo. >> temp_vlc_protocols_reg.reg
REM 为每种协议生成相应的注册表项
for %%P in (rtmp rtp rtsp udp) do (
echo ^[HKEY_CLASSES_ROOT\%%P^] >> temp_vlc_protocols_reg.reg
echo @="URL:%%P Protocol" >> temp_vlc_protocols_reg.reg
echo "URL Protocol"="" >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo ^[HKEY_CLASSES_ROOT\%%P\DefaultIcon^] >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo ^[HKEY_CLASSES_ROOT\%%P\shell^] >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo ^[HKEY_CLASSES_ROOT\%%P\shell\open^] >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo ^[HKEY_CLASSES_ROOT\%%P\shell\open\command^] >> temp_vlc_protocols_reg.reg
echo @=^"\"!VLC_PATH_DOUBLE!\" \"%%1\"^" >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
echo. >> temp_vlc_protocols_reg.reg
)
echo 注册表项已生成,请手动双击运行 %current_path%temp_vlc_protocols_reg.reg 来应用更改。
) else (
echo 注册表项未生成, 未找到vlc.exe文件.
)
:: 暂停脚本,直到用户按任意键
pause
:: 结束脚本(实际上,当执行到pause时,脚本就会等待用户输入,然后自动结束)