.net - C# - 检测是否打开了 Windows 功能(尤其是 Windows Media Player)
问题描述
一些 Windows 功能是可选的,用户可以决定是否要关闭或打开它们。其中之一是 Windows Media Player 组件(如此处所述http://support.overwolf.com/knowledge-base/enabling-windows-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);
推荐阅读
- php - 如何使用 php 建立 netezza 数据库连接
- javascript - 使用 google-signin 成功登录后如何重定向
- android - 如何从我的 android 项目中删除lazyconfigurationusagecontext?
- sparse-matrix - 使用 MKL 库的稀疏矩阵乘法
- jasper-reports - 如何为 json 源正确添加交叉表?
- sql - 如何根据另一列的值得出一列的值?
- angular - 角度 8 路由默认空不重定向到登录模块
- java - 在流上进行 forEach 和 count 的优雅方式
- javascript - 反应历史推送附加到 url 而不是替换
- amazon-web-services - AWS 凭证如何在 GitHub Actions With MFA 中工作