首页 > 解决方案 > C# - 检测是否打开了 Windows 功能(尤其是 Windows Media Player)

问题描述

一些 Windows 功能是可选的,用户可以决定是否要关闭或打开它们。其中之一是 Windows Media Player 组件(如此处所述http://support.overwolf.com/knowledge-base/enabling-windows-media-player/

有没有办法在代码中找出当前是否安装了它?谢谢您的帮助!

标签: .netwindows-media-player

解决方案


我尝试了在打开和不打开这些功能的情况下比较注册表项的方法。有许多键,可能同样足以检查。这些是最重要的:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\wmplayer.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\wmplayer.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AMOVIE.ActiveMovie Control
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WMPlayer.OCX
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MediaPlayer.MediaPlayer

所以实际的 C# 代码就像

bool windowMediaPlayerAvailable = (Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\MediaPlayer.MediaPlayer") != null);

推荐阅读