Развертывание видеокодека VC-1 для проигрывателя Windows Media 10 (wvc1dmo.cab)
Как развернуть из командной строки видеокодек VC-1 для Windows Media Player 10?
Обычно он устанавливается при посещении страницы, содержащей видео, закодированное в VC-1, как этот (видео Евровидение 2009, не для слабонервных, будьте осторожны). Но это требует административных привилегий и является интерактивным, поэтому нецелесообразным на многих рабочих станциях.
IE скачивает файл wvc1dmo.cab
содержащий wvc1dmo.inf
а также wvc1dmod.dll
и устанавливает его как-то. Но как это сделать из командной строки, без присмотра?
1 ответ
Быстрый и грязный способ - распакуйте файлы и запустите:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 wvc1dmo.inf
Я, вероятно, упакую DLL в MSI и разверну ее таким образом.
Редактировать:
Кажется, что Rundll32 не хочет работать, если путь к INF не указан как ".\ Wvc1dmo.inf". Даже в этом случае установщик INF (запускаемый из командной строки или из щелчка правой кнопкой мыши / Install) фактически не регистрирует 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
Это работает, и моя совесть несколько яснее. В следующий раз я протестирую немного больше, прежде чем отправлять "ответ". Мои извенения.