据我所知,Windows Media Player 10 是 WPF MediaElement 工作的最低要求。以编程方式(来自.NET)检查WMP是否存在及其版本的体面方法是什么?
问问题
4821 次
3 回答
3
我在安装程序中使用的方法是检查此注册表值:
HKLM
Software\Microsoft\MediaPlayer\PlayerUpgrade
PlayerVersion
PlayerVersion 值将设置为类似“10,0,0,0”的字符串。(请注意,使用逗号而不是句点来分隔数字。)您需要提取第一个数字(主要版本)并确保它是 10 或更高。
我找不到任何关于如何检测 WMP 的官方文档,但上述方法似乎适用于当前版本的 Windows 和 WMP。
请注意,如果安装了 WMP9(Windows XP 附带的版本),当您尝试使用 MediaElement 时,您的应用程序不会崩溃,但控件不会呈现任何内容,并且警告消息将打印到调试器。
如果您的应用程序仅用于 Vista 或更高版本,您无需担心任何这些,因为 Vista 带有 WMP10。
于 2010-09-16T03:05:51.363 回答
2
以下是检查系统上安装的所有产品的方法:
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);
}
您需要添加“使用 System.Management”和对“System.Management.dll”的引用。
要获取特定产品的信息,您可以优化查询或在所有产品中搜索产品。
于 2010-09-15T13:49:23.413 回答
0
我找到了这个解决方案:
FileVersionInfo inf = FileVersionInfo.GetVersionInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Windows Media Player", "wmplayer.exe"));
if (inf.FileVersion.StartsWith("9"))
{...
于 2012-12-28T06:51:08.037 回答