Как запустить приложение IoT для Windows в приложении в C # - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь написать простое приложение главного меню, в котором пользователь может нажать кнопку, а затем оно запустит приложение, уже установленное в Windows 10 IoT.(Это приложение "IoTCoreMediaPlayer" в качестве примера)

Вот мой код:

private void Button_Click(object sender, RoutedEventArgs e)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = @"C:\Data\USERS\DefaultAccount\AppData\Local\DevelopmentFiles\IoTCoreMediaPlayerVS.Debug_ARM.User\entrypoint\IoTCoreMediaPlayer.exe";
        startInfo.Arguments = f;
        Process.Start(startInfo);
    }

Это, однако, не работает и выдает мне следующую ошибку:

System.NotImplementedException: 'The method or operation is not implemented.'

ниже:

using Media_Center;

namespace System.Diagnostics
{
internal class Process
{
    internal static void Start(string v)
    {
        throw new NotImplementedException();
    }

    internal static void Start(ProcessStartInfo startInfo)
    {
        throw new NotImplementedException(); <===
    }
}
}

Может кто-нибудь сказать мне, что я делаю неправильно?Спасибо

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете обратиться к этому образцу , который демонстрирует, как запустить приложение UWP из другого приложения UWP.В этом примере вы найдете код операции:

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 для приложения, которое вы хотите запустить, и укажите это в URI LaunchApp.

Кроме того,если вы хотите запустить внешний процесс (exe), вы можете обратиться к этому примеру ExternalProcessLauncher .

...