首页 > 解决方案 > C# - 检查是否在 Windows10 上安装了 UWP 应用

问题描述

问题:使用C#我们如何检查UWP应用程序是否安装在Windows10`

可能的目标:我真正的动机是开发一个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"))

标签: c#uwp

解决方案


您可以从 Win32 应用调用 PackageManager.FindPackageForUser API 来检查是否为当前用户安装了 UWP。

https://docs.microsoft.com/en-us/uwp/api/windows.management.deployment.packagemanager.findpackageforuser


推荐阅读