首页 > 解决方案 > 有没有办法从我的 UWP 应用程序中启动外部 .exe 文件和 UWP 应用程序?

问题描述

基本上,我想让用户能够将安装在他们 PC 上的其他应用程序的快捷方式添加到我的应用程序中,以便他们可以从我的应用程序中启动它们。我希望他们能够启动 Win32 应用和 UWP 应用(Windows 10 应用商店应用)。我的应用程序不是文件浏览器,但用户只需能够从我的应用程序中启动他们最喜欢的应用程序。我有理由希望实现这种类型的功能。-__-

标签: c#xamluwpuwp-xaml

解决方案


我的 UWP 应用程序中是否有 UWP 应用程序的方法?

UWP 提供了一种为当前用户查询已安装的 UWP 应用程序的方法。你可以FindPackagesForUser用来获取它们。然后调用GetAppListEntriesAsync以获取每个应用程序的应用程序条目。如果你想启动应用程序,只需调用 LaunchAsync方法。有关更多信息,请参阅以下示例代码。

private async void FindBtn_Click(object sender, RoutedEventArgs e)
{
    PackageManager manager = new PackageManager();
    var packages = manager.FindPackagesForUser(string.Empty);
    foreach (var package in packages)
    {

        var appEntries = await package.GetAppListEntriesAsync();
        var firstApp = appEntries.FirstOrDefault();
        if (firstApp != null)
        {
            await firstApp?.LaunchAsync();
        }

    }
}

请注意 ``在调用之前FindPackagesForUser,您需要启用 packageQuery功能

<Package
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap" >

......

 <rescap:Capability Name="packageQuery" />

有没有办法启动外部 .exe 文件

目前,UWP 还没有提供这样的 api 来像经典桌面应用程序那样直接启动带有路径的 win32 应用程序,如果您确实需要此功能,我们建议您为您的 UWP 应用程序制作桌面扩展,并在扩展部分安装应用程序并启动它。


推荐阅读