Использование аргументов командной строки с Windows.System.Launcher.LaunchFileAsync в приложении uwp - PullRequest
0 голосов
/ 01 октября 2019

Я запускаю файл powerpoint из моего приложения uwp, используя следующий код:

Windows.System.Launcher.LaunchFileAsync("MyPath\powerpointFile.ppt");

, и это работает абсолютно нормально.

Теперь я хотел бы предоставить некоторые аргументы командной строкик этому методу, но, глядя на документацию , я не вижу никаких упоминаний об аргументах командной строки.

Можно ли открыть файл и передать ему аргументы командной строки, используя Launcher в приложении uwp

Мое настольное приложение в настоящее время открывает файл powerpoint следующим образом:

  ProcessStartInfo startInfo = new ProcessStartInfo();
  startInfo.FileName = "POWERPNT.exe";
  startInfo.Arguments = "/S " + "\"" + fileName + "\"";
  var process = Process.Start(startInfo);

1 Ответ

0 голосов
/ 01 октября 2019

Мне удалось решить эту проблему, создав собственный обработчик URI (отдельная программа на c #) и развернув его вместе с моим приложением uwp.

Код читается:

 if (args[0].StartsWith("myProg:Open",true, CultureInfo.CurrentCulture))
 {
     var split = args[0].Split(';');

     var argsString = split[1];

     var progArgs = argsString.Split('~');

      var program = progArgs[0];
      List<string> commandLineArgs = new List<string>();
      for (int i = 1; i < progArgs.Count(); i++)
      {
          commandLineArgs.Add(progArgs[i]);
      }

      ProcessStartInfo startInfo = new ProcessStartInfo();
      startInfo.FileName = program;
      startInfo.Arguments = string.Join(" ", commandLineArgs);
      var process = Process.Start(startInfo);

      return;

}

, и вы можете назвать его следующим образом:

Windows.System.Launcher.LaunchFileAsync("myprog:Open;POWERPNT.exe~/S~\"MyPath\powerpointFile.ppt\"")

ОБНОВЛЕНИЕ

Другой способ - использовать broadFileSystemAccess (* 1017). *

, которая может быть реализована с использованием информации по этой ссылке:

broadFileSystemAccess UWP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...