有没有办法从我的 UWP 应用程序中启动外部 .exe 文件和 UWP 应用程序?

Is there a way to launch external .exe files and UWP apps from within my UWP app?

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

Is there a way UWP apps from within my UWP app?

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" />

Is there a way to launch external .exe files

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