在uwp应用程序中将命令行参数与Windows.System.Launcher.LaunchFileAsync一起使用

时间:2019-10-01 11:35:39

标签: c# uwp

我正在使用以下代码从uwp应用程序启动PowerPoint文件:

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

这绝对可以。

我现在想为此方法提供一些命令行参数,但是看着documentation,我看不到命令​​行参数的任何提及。

是否可以在uwp应用程序中使用Launcher打开文件并向其传递命令行参数

我的桌面应用程序当前打开powerpoint文件,如下所示:

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

1 个答案:

答案 0 :(得分:0)

我设法通过创建自定义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\"")

更新

另一种方法是使用broadFileSystemAccesshttps://www.dotnetapp.com/?p=438

可以使用以下链接中的信息实现:broadFileSystemAccess UWP