如何将参数传递给进程

时间:2012-05-21 08:59:40

标签: c# .net-4.0 process arguments main

有没有办法将字符串参数传递给从我自己的进程中生成的进程。

我的主要申请表中有:

Process.Start(Path.Combine(Application.StartupPath, "wow.exe");

wow.exe是我创建的另一款应用。我需要将参数传递给这个exe(一个字符串)。我怎样才能实现这一目标?

我尝试了什么:

 ProcessStartInfo i = new //........
 i.Argument = "cool string";
 i. FileName = Path.Combine(Application.StartupPath, "wow.exe");
 Process.Start(i);

在我撰写的wow应用程序的主要内容中:

static void Main()
{
    //print Process.GetCurrentProcess().StartInfo.Argument;
}

但我从来没有在第二个应用程序的Main中找到我的字符串。 Here is a question提出why,但没有how to solve it ..

修改: Environment.GetCommandLineArgs()[1],必须如此。然而,让它工作。接受@ Bali的回答,他首先回答这个问题。谢谢大家

4 个答案:

答案 0 :(得分:2)

要获得传递的参数,您可以使用string[] args中的Main,也可以使用Environment.GetCommandLineArgs

示例:

Console.WriteLine(args[0]);

Console.WriteLine(Environment.GetCommandLineArgs[0]);

答案 1 :(得分:2)

你可能想要一个

static void Main(string[] args)
{
}

其中args包含您在

中传递的参数

答案 2 :(得分:1)

wow.exe program.cs

static void Main()
{
     //Three Lines of code 
}

将其更改为

static void Main(string[] args)
{
     //Three Lines of code 
}

string[] args.现在将包含传递给你的exe的参数。

或者您可以使用

string[] arguments = Environment.GetCommandLineArgs();

你的论点被空格" "打破了。

答案 3 :(得分:1)

以下是如何将参数传递给exe的示例:

static void Main()
{
   string[] args = Environment.GetCommandLineArgs();

   string firstArgument = args[0];
   string secondArgument = args[1];
}

或稍微更改主要方法:

static void Main(string []args)
{}