为 Windows Media Player 10 部署 VC-1 视频编解码器 (wvc1dmo.cab)

为 Windows Media Player 10 部署 VC-1 视频编解码器 (wvc1dmo.cab)

如何从命令行部署VC-1 视频编解码器适用于 Windows Media Player 10?

它通常在访问包含以 VC-1 编码的视频的页面时安装,例如这个(欧洲电视网 2009 视频,不适合胆小者,请注意)。但这需要管理权限,并且是交互式的,因此在许多工作站上不切实际。

IE 下载文件wvc1dmo.cab包含wvc1dmo.infwvc1dmod.dll以某种方式安装它。但是如何从命令行无人值守地执行此操作?

答案1

快速而肮脏的方法 - 提取文件并运行:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 wvc1dmo.inf

我可能会将 DLL 打包到 MSI 中并以这种方式部署它。

编辑:

除非将 INF 路径指定为“.\wvc1dmo.inf”,否则 Rundll32 似乎不会运行。即便如此,INF 安装程序(从命令行或右键单击/安装调用)实际上也不会注册 DLL!这是一个部署脚本,可以将其放入服务器计算机的共享中并作为启动脚本调用。(我认为,对于我的网络,我仍然会在 MSI 中部署这个东西,但我今天早上没有时间构建 MSI)。

@echo off
SET SRC=\\test-pc01\foo
SET DEST=%TEMP%\%RANDOM%.TMP

rem Query for installation
reg query "HKCR\Software\Microsoft\Multimedia\Components\Installed\codec_wvc1dmo\Uninstall"> NUL 2>NUL
if errorlevel 1 goto do_install
goto end

:do_install
rem Make temporary directory and copy down files
mkdir "%DEST%"
xcopy "%SRC%" "%DEST%" /y

rem Change directory and drive to destination location (as setupapi has to be called with
rem current directory .\ specified on command line. Dumb, dumb, dumb...)
pushd %DEST%
%DEST:~0,2%

rem Call setupapi to perform installation
start /wait rundll32.exe setupapi,InstallHinfSection DefaultInstall.Nt 132 .\wvc1dmo.inf

rem Dumb thing doesn't seem to register itself
regsvr32 /s %SystemRoot%\System32\wvc1dmod.dll

popd

rem Remove temporary files
rmdir /s /q "%DEST%"

:end

这很有效,我的良心也更清楚了。下次,我会再测试一下,然后再发布“答案”。抱歉。

相关内容