如何将命令行从WPF应用程序传递到另一个应用程序?

时间:2011-04-25 08:01:43

标签: c# c#-4.0

目前我正在使用以下代码从另一个WPF应用程序(4.0应用程序)运行一个WPF exe(在3.5框架中):

var processInfo = new ProcessStartInfo("WPFAPP1.exe", "param");
Process.Start(processInfo);

以上原因是:
我正在使用一些仅支持3.5框架的第三方,而我现有的应用程序是4.0。我无法更改当前的应用程序目标类型,因为它有大约200个项目,我需要更改。

现在问题是我想在WPFAPP1.exe中获取命令行参数(即我的情况下为“param”)。为此我在WPFAPP1应用程序中使用了以下代码(我从主应用程序调用的.exe应用程序),

 public static String[] mArgs;
  void Application_Startup(object sender, StartupEventArgs e)
  {
        if (e.Args.Length > 0)
        {
            mArgs = e.Args;
        }
  }

在MainWindow.xaml.cs中:

        public MainWindow()
        {
            InitializeComponent();
            String[] args = App.mArgs;
            txtTest.Text = args[0];
        }

我尝试了上面的代码,但没有得到相应的值(我从主应用程序传递的“param”)。我也没有得到任何异常或错误。任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

查看System.Diagnostics.Process.GetCurrentProcess()。StartInfo。它是一个ProcessStartInfo实例,它具有Arguments属性,该属性包含当前进程的所有参数。

您可以创建一个新的ProcessStartInfo实例,并将参数传递给任何子流程。