Программно определить, установлен ли проигрыватель Windows Media - PullRequest
1 голос
/ 27 октября 2010

У кого-нибудь есть советы, как программно определить, установлен ли проигрыватель Windows Media?

Я знаю, что искать настройки реестра, но не доверять им, так как это более чем немного вводит в заблуждениене удаляйте это).И я подумал о том, чтобы просто запустить видео, но ошибка могла быть вызвана чем-то, кроме того, что Media Player не был установлен, поэтому он также не является окончательным.как из моего приложения на C ++, так и из моего NSIS установщика.Но мое приложение на C ++ является наиболее важным, я хочу жить с взломом реестра в установщике.

Ответы [ 3 ]

7 голосов
/ 27 октября 2010

Посмотрите на значение IsInstalled под ключом HKLM\Software\Microsoft\Active Setup\Installed Components\{22d6f312-b0f6-11d0-94ab-0080c74c7e95}. 1, если установлено, 0 в противном случае.

См. Обнаружение проигрывателя Windows Media из приложения .

2 голосов
/ 27 октября 2010

Если удаление не удаляет как EXE, так и запись в реестре, я очень сомневаюсь, что оно удалило что-либо ...

Итак, я бы посоветовал вам проверить реестр в HKLM\Software\Microsoft\MediaPlayer\ и, если он существует, взять значение Installation Directory или Installation DirectoryLFN (по умолчанию %ProgramFiles%\Windows Media Player) и убедиться, что wmplayer.exe существует в этом каталоге , Если это так, то вы будете знать, что WMP установлен.

2 голосов
/ 27 октября 2010

(Вы не говорите, проверяете ли вы встраиваемый (т.е. OCX) проигрыватель для встраивания в ваше приложение или EXE для запуска из вашего приложения.)

Как насчет проверки HRESULT наCoCreateInstance против CLSID {22d6f312-b0f6-11d0-94ab-0080c74c7e95} / ProgID «MediaPlayer.MediaPlayer.1» в вашем приложении?(CLSID из http://technet.microsoft.com/en-us/library/bb676121.aspx)

В вашем установщике просто проверьте HKEY_CLASSES_ROOT \ CLSID {22D6F312-B0F6-11D0-94AB-0080C74C7E95} и, возможно, также, что путь в подразделе InprocServer32 существует.

...