1

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

我在我的主要应用程序中有:

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 中找到我的字符串。这是一个问题why但没有how to solve it..

编辑: Environment.GetCommandLineArgs()[1]它必须是。尽管如此,让它工作。接受@Bali 的回答,因为他首先提出了这个答案。谢谢大家

4

4 回答 4

2

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

例子:

Console.WriteLine(args[0]);

或者

Console.WriteLine(Environment.GetCommandLineArgs[0]);
于 2012-05-21T09:04:38.137 回答
2

这是一个如何将参数传递给 exe 的示例:

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

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

或者稍微改变一下你的主要方法:

static void Main(string []args)
{}
于 2012-05-21T09:05:08.143 回答
2

你可能想要一个

static void Main(string[] args)
{
}

whereargs包含您传入的参数

于 2012-05-21T09:05:23.257 回答
1

在你的wow.exeprogram.cs

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

将其更改为

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

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

或者你可以使用

string[] arguments = Environment.GetCommandLineArgs();

你的论点被空格打断了" "

于 2012-05-21T09:01:30.643 回答