c# - C# - 检查是否在 Windows10 上安装了 UWP 应用
问题描述
问题:使用C#
我们如何检查UWP
应用程序是否安装在Windows
10`
可能的目标:我真正的动机是开发一个VS2017
使用Microsoft.Office.Interop的 MS Office 应用程序,它与 UWP 应用程序交互,就像这里解释的那样。但办公应用程序会首先检查是否安装了所需的 UWP 应用程序。
对于旧的 Windows 32 位和 64 位应用程序,我们可以使用以下各种方法检查是否安装了应用程序。我想知道 Windows 10 上的 UWP 是否有类似的东西:
private static bool IsSoftwareInstalled(string softwareName)
{
var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") ??
Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall");
if (key == null)
return false;
return key.GetSubKeyNames()
.Select(keyName => key.OpenSubKey(keyName))
.Select(subkey => subkey.GetValue("DisplayName") as string)
.Any(displayName => displayName != null && displayName.Contains(softwareName));
}
然后使用一个if
语句来调用它:
if (IsSoftwareInstalled("OpenSSL"))
解决方案
您可以从 Win32 应用调用 PackageManager.FindPackageForUser API 来检查是否为当前用户安装了 UWP。
推荐阅读
- java - .putAll() 会影响复制的变量吗?
- javascript - 从数组中删除值为 0 的对象
- javascript - d3/javascript 根据输入过滤数据
- javascript - Node.js puppeteer - 如何从表中仅获取某些(过滤器)记录
- powershell - 通过文件夹路径为组中的用户获取有效访问权限
- django - /admin/auth/user/ 处的类型错误
- uima - 在 UIMA RUTA / RETAINTYPE 中构建 WordTables 的问题不起作用
- python - 字符串操作:如何隔离字典中的单词
- json - JSON 响应中的相同属性可以是数字/布尔值/字符串吗?
- javascript - R中的d3可重新聚焦树图