【发布时间】:2012-05-19 19:18:22
【问题描述】:
我正在尝试从另一个 wpf 应用程序调用一个 wpf 应用程序。 调用 wpf 应用程序进行调用
ProcessStartInfo BOM = new ProcessStartInfo();
BOM.FileName = @"D:\WPFAPPLICATION.exe";
BOM.Arguments = temp;
Process.Start(BOM);
现在在调用的应用程序中,我尝试检索使用
传递的参数 string arguments =Process.GetCurrentProcess().StartInfo.Arguments;
但是参数没有被传递。这是为什么呢??
我还尝试了另一种方法,其中:
public partial class App : Application
{
public static String[] mArgs;
private void Application_Startup(object sender, StartupEventArgs e)
{
if (e.Args.Length > 0)
{
mArgs = e.Args;
}
}
}
}
但是这也不起作用!!! 请帮忙!!
【问题讨论】:
-
您确定
temp确实具有您期望的价值吗?此外,在使用 Powershell 之前,我在从启动信息中检索参数时遇到了问题,忘记了问题所在,但我认为应用程序仍然使用正确的参数运行,它可能只是没有保留在启动信息中。 -
我确定 temp 保持所需的值。但我不认为它被传递给被调用的 wpf 应用程序。
-
@Sana,你能出示
temp的声明吗? -
var temp = string.Empty; temp = Convert.ToString(values[0], CultureInfo.InvariantCulture);我非常确定 temp 保持所需的值,因为我添加了一块手表并监控了更改。
标签: c# wpf process argument-passing calling-convention