UWP使用参数

时间:2017-12-12 03:54:14

标签: uwp desktop-bridge

在UWP上

,我想运行带参数的Exe文件。 这是一个例子。

process.exe filename.txt

此命令行应用程序处理文本文件并将结果文件输出为Text。

我的问题是

如何传递参数。我成功在UWP上运行Exe文件,但是文件名的输入完整路径可能是错误的并且失败了。

在ViewModels中,

await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync("spectrum");
Package.appxmanifest中的

  <Extensions>
    <desktop:Extension Category="windows.fullTrustProcess" Executable="Assets\identify\process.exe" >
      <desktop:FullTrustProcess>
        <desktop:ParameterGroup GroupId="spectrum" Parameters="Assets\Identify\filename.txt"/>
      </desktop:FullTrustProcess>
    </desktop:Extension>
  </Extensions>
...
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</DeviceCapability>

现在,我将文件放在Assets \ identify文件夹中。它与exe文件是同一个文件夹。 但是exefile找不到输入文件。

我应该如何写入&#34; desktop:ParameterGroup ....&#34; ??

无论如何以编程方式传递Argument? 老实说,我不想在Package.appxmanifest中写一个argement。

更新1: 我也尝试过这个。但无法找到文件名。

        <desktop:ParameterGroup GroupId="spectrum" Parameters=".\Assets\Identify\filename.txt"/>

更新2

我的外部应用程序显示此错误:

enter image description here

这意味着,我的外部应用程序收到奇怪的字符串作为输入参数。 &#34; * / InvokerPRAID:App Appx / identify / souma.spe&#34;

什么是/ InvokerPRAID:App ??

1 个答案:

答案 0 :(得分:0)

如果要将参数传递给Win32应用程序的参数,则该值位于第三个参数中。

UWP软件包清单:

<desktop:ParameterGroup GroupId="spectrum" Parameters=".\Assets\Identify\filename.txt"/>

Win 32应用程序

static void Main(string[] args)
{
   //args[0] = "/InvokerPRAID :"
   //args[1] = "App"
   var fullTrustProcessParam = args[2]; //".\Assets\Identify\filename.txt"
}