,我想运行带参数的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
我的外部应用程序显示此错误:
这意味着,我的外部应用程序收到奇怪的字符串作为输入参数。 &#34; * / InvokerPRAID:App Appx / identify / souma.spe&#34;
什么是/ InvokerPRAID:App ??
答案 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"
}