Как передать параметры другому процессу в c#

Я просто создал приложение, которое запускает процессы со следующим кодом

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

Я хотел бы иметь возможность передавать параметры из этого приложения в процесс, который я запустил.

где я должен ввести параметры в проект процесса, который я запустил? Я пытался вставить их в

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

но они недоступны в других формах. спасибо за помощь

2 ответов


Process p= new Process();
p.StartInfo.FileName = "demo.exe";
p.StartInfo.Arguments = "a b";
p.Start();

или

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

в демо.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;
}

чтобы получить params в любом месте использования вашей программы:

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

etc.


основной код приложения:

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".