代码之家  ›  专栏  ›  技术社区  ›  nam

C-检查Windows10上是否安装了UWP应用程序

  •  1
  • nam  · 技术社区  · 5 年前

    问题 使用 C# 我们如何检查 UWP 应用程序安装在 Windows 10

    可能的目标 :我真正的动机是在 VS2017 使用 Microsoft.Office.Interop 与UWP应用程序交互 this one 解释 here . 但是Office应用程序会首先检查是否安装了所需的UWP应用程序。

    对于旧的Windows 32位和64位应用程序,我们可以使用以下各种方法检查是否安装了应用程序。我想知道在Windows10上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"))
    
    1 回复  |  直到 5 年前
        1
  •  2
  •   Stefan Wick MSFT    5 年前

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

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