Как проверить, какая версия Windows Media Player установлена ​​на компьютере? - PullRequest
2 голосов
/ 15 сентября 2010

Насколько мне известно, Windows Media Player 10 является минимальным требованием для работы WPF MediaElement.Как найти достойный способ программно (из .NET) проверить наличие WMP и его версию?

Ответы [ 3 ]

3 голосов
/ 16 сентября 2010

Метод, который я использовал в своем установщике, заключается в проверке этого значения реестра:

HKLM
Software\Microsoft\MediaPlayer\PlayerUpgrade
PlayerVersion

В качестве значения PlayerVersion будет задана строка типа «10,0,0,0».(Обратите внимание, что запятые, а не точки, используются для разделения чисел.) Вам необходимо извлечь первое число (основную версию) и убедиться, что оно равно 10 или выше.

Я не смог найти ни одногоофициальная документация о том, как обнаружить WMP, но описанный выше метод работает правильно с текущими версиями Windows и WMP.

Обратите внимание, что если установлена ​​WMP9 (версия, поставляемая с Windows XP), ваше приложение будетне вылетает при попытке использовать MediaElement, но элемент управления ничего не отображает, и в отладчик выводятся предупреждающие сообщения.

Если ваше приложение будет использоваться только с Vista или выше, вы не будетене нужно беспокоиться об этом, потому что Vista поставляется с WMP10.

2 голосов
/ 15 сентября 2010

Вот как вы можете проверить все продукты, установленные в системе:

SelectQuery allProductsQuery = new SelectQuery("Win32_Product");

ManagementObjectSearcher allProducts =
new ManagementObjectSearcher(allProductsQuery);

foreach(ManagementObject product in allProducts.Get())
{
Console.WriteLine("Product {0} is at version {1}",
product.Properties["Name"].Value,
product.Properties["Version"].Value);
}

Вам необходимо добавить «using System.Management» и ссылку на «System.Management.dll».

Чтобы получить информацию о конкретном продукте, вы можете уточнить запрос или выполнить поиск продукта по всем из них.

0 голосов
/ 28 декабря 2012

я нашел это решение:

FileVersionInfo inf = FileVersionInfo.GetVersionInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Windows Media Player", "wmplayer.exe"));
        if (inf.FileVersion.StartsWith("9"))
        {...
...