2017-02-02 50 views
4

我想构建一个“启动程序应用程序”以在我的Windows 10物联网(Raspberry Pi 3)版本14986(或更高版本)上运行。启动程序应该基本上只有两个按钮来启动(或切换到)已经部署在设备上的其他应用程序。我想知道是否有人知道如何启动一个应用程序(从C#)?如何在Windows 10物联网上启动/切换前台应用程序

我已经看过了Windows.System.Launcher.LaunchUriAsync API,但我不知道该怎么在传递(我曾与一些URI和下选择TargetApplicationPackageFamilyName测试,没有运气(调用方法时没有任何反应)。

例(其中不工作):

private void button_Click(object sender, RoutedEventArgs e) 
    { 
     Task.Run(async() => 
     { 
      var options = new LauncherOptions(); 
      options.TargetApplicationPackageFamilyName = "27ad8aa6-8c23-48bd-9633-e331740e6ba7_mr3ez18jctte6!App"; 

      var uri = new Uri("about:blank"); 

      await Windows.System.Launcher.LaunchUriAsync(uri, options); 
     }); 
    } 
+0

https://developer.microsoft.com/en-us/windows/iot/samples/externalprocesslauncher –

+0

是的,我看到那篇文章,但我不想推出一个EXE,我想推出另一个UAP/UWP应用程序。 – Haukman

+1

https://code.msdn.microsoft.com/windowsapps/How-to-launch-an-UWP-app-5abfa878我希望它有帮助。 –

回答

3

你可以找到关于微软代码的答案没有为一个样本:

https://code.msdn.microsoft.com/windowsapps/How-to-launch-an-UWP-app-5abfa878

在这个例子中,你找到启动代码:

private async void RunMainPage_Click(object sender, RoutedEventArgs e) 
{ 
    await LaunchAppAsync("test-launchmainpage://HostMainpage/Path1?param=This is param"); 
} 

private async void RunPage1_Click(object sender, RoutedEventArgs e) 
{ 
    await LaunchAppAsync("test-launchpage1://Page1/Path1?param1=This is param1&param1=This is param2"); 
} 

private async Task LaunchAppAsync(string uriStr) 
{ 
    Uri uri = new Uri(uriStr); 
    var promptOptions = new Windows.System.LauncherOptions(); 
    promptOptions.TreatAsUntrusted = false; 

    bool isSuccess = await Windows.System.Launcher.LaunchUriAsync(uri, promptOptions); 

    if (!isSuccess) 
    { 
     string msg = "Launch failed"; 
     await new MessageDialog(msg).ShowAsync(); 
    } 
} 

诀窍是设置要启动的应用程序指定的Windows协议,并指定在LaunchApp URI。

相关问题