【问题标题】:How to pass parameters to another process in c#c#中如何将参数传递给另一个进程
【发布时间】:2013-04-17 09:57:46
【问题描述】:

我刚刚创建了一个使用以下代码启动进程的应用程序

string [] args = {"a", "b"};
             Process.Start ("C: \ \ demo.exe" String.Join ("", args));

我希望能够将此应用程序中的参数传递给我启动的进程。

我必须在我启动的流程的项目中输入参数? 我试着把它们放进去

static void Main (string [] args) {...

但它们不能以其他形式提供。 感谢您的帮助

【问题讨论】:

  • 我真正的问题是我启动的进程(demo.exe)没有参数,我需要知道在demo.exe项目中我必须将参数放在哪里,谢谢

标签: c# parameters process


【解决方案1】:
Process p= new Process();
p.StartInfo.FileName = "demo.exe";
p.StartInfo.Arguments = "a b";
p.Start();

Process.Start("demo.exe", "a b");

在 demo.exe 中

static void Main (string [] args)
{
  Console.WriteLine(args[0]);
  Console.WriteLine(args[1]);
}

您询问如何保存这些参数。您可以创建具有静态属性的新类并将这些参数保存在那里。

class ParamHolder
{
  public static string[] Params { get; set;}
}

主要是

static void Main (string [] args)
{
  ParamHolder.Params = args;
}

在程序使用的任何地方获取参数:

Console.WriteLine(ConsoleParamHolder.Params[0]);
Console.WriteLine(ConsoleParamHolder.Params[1]);

等等

【讨论】:

  • 谢谢罗伯特,但我需要知道在 aa.exe 项目中,我要把参数放在哪里
  • 在您运行应用程序后,它们将在您的参数中,这取决于“demo.exe”是用什么语言编写的。如果是 C#,它们将在函数 main 的 args 中。如果你按照我上面写的那样通过它们,它应该可以正常工作:)
  • 谢谢 robert,但不知道如何在我启动的进程的其他形式中调用这个 args?
  • 您可以将它们保存在任何您想要的位置。假设您创建了一个带有静态字段的类,并将这些参数保存在这些字段中。当你保存它。您将能够从任何地方获得它们。检查我编辑的帖子。
【解决方案2】:

主要应用代码:

var process = new Process();
process.StartInfo.FileName = "demo.exe" // Path to your demo application.
process.StartInfo.Arguments = "a b c"   // Your arguments
process.Start();

在您的演示应用程序中(我假设这是控制台应用程序)

static void Main (string [] args)
{
    var agrumentOne = args[0];
    var agrumentTwo = args[1];
    var agrumentThree = args[3];
}

这里 argumentOne、argumentTwo、argumentThree 将包含“a”、“b”和“c”。

【讨论】:

  • 谢谢 Faisal Hafeez,也是上面的回答工作。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2015-06-27
  • 2013-08-05
  • 2012-05-27
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 2011-10-20
相关资源
最近更新 更多