如何检测桌面应用程序是否从 UWP 应用程序安装

How to detect if a desktop app is installed from a UWP app

我基本上和 MSDN 上的这个人问同样的问题:How to detect if application is installed on the device

但是,我是开发新手,答案指向 Docs.microsoft.com 我很高兴,但我想我不知道如何实现它。

我假设此代码需要驻留在 App.xaml.cs 上,并且它实际上设置了一个 属性,我可以使用它来打开或关闭视图按钮的可见性。

public static IAsyncOperation<LaunchQuerySupportStatus> 
    QueryUriSupportAsync(Windows.Foundation.Uri,Windows.System.LaunchQuerySupportType,System.String)

我想做的是在应用程序中标记我的一个视图的可见性,如果安装了 Microsoft Dyanmics AX,则不显示。

这是 XAML 中按钮的代码。

<Controls:HamburgerButtonInfo ClearHistory="True" PageType="views:DevicePage">
<StackPanel Orientation="Horizontal">
    <SymbolIcon Width="48"
                Height="48"
                Symbol="Keyboard" />
    <TextBlock Margin="12,0,0,0"
               VerticalAlignment="Center"
               Text="Manage Device" />
</StackPanel>

顺便说一句,我正在使用 Template10 作为框架。所以我假设因为我所有的视图都显示在 Shell.xaml 中,所以我会在上面的按钮上放置一个条件 Visibility=Visible

对问题的简短回答是:不,UWP 无法检测到系统上安装了哪些 Win32 应用程序。

稍微长一点的答案:如果您真正想知道是否安装了支持特定协议或支持特定文件类型的应用程序,您可以使用 QueryUriSupportAsync 或 QueryFileSupportAsync 找到答案。这些 API 还考虑安装的 Win32 应用程序。

谢谢, Stefan Wick - Windows 开发者平台