C # перенаправление данных на уже запущенный консольный exe - PullRequest
0 голосов
/ 13 ноября 2018

Что я хочу сделать:

Я хочу запустить встроенное консольное приложение (AppB) из другого консольного приложения (AppA).AppA запускает AppB без каких-либо аргументов.Все, что делает AppB, - это входит в метод Main() и вызывает Console.ReadLine().

. Теперь я хочу, чтобы AppA отправляла строку данных в Console.ReadLine() AppB.Это вообще возможно?(Я знаю, что могу отправлять потоки на новый Console.exe, но это не то, что мне нужно.)

1 Ответ

0 голосов
/ 13 ноября 2018

Вам необходимо использовать RedirectStandardInput :

     Process myProcess = new Process();

     myProcess.StartInfo.FileName = "someconsoleapp.exe";
     myProcess.StartInfo.UseShellExecute = false;
     myProcess.StartInfo.RedirectStandardInput = true;
     myProcess.StartInfo.RedirectStandardOutput = true;
     myProcess.StartInfo.ErrorDialog = false;

     myProcess.Start();

     StreamWriter stdInputWriter  = myProcess.StandardInput;
     StreamReader stdOutputReader  = myProcess.StandardOutput;

     stdInputWriter.WriteLine(password);

     var op = stdOutputReader.ReadLine();

     // close this - sending EOF to the console application - hopefully well written
     // to handle this properly.
     stdInputWriter.Close();


     // Wait for the process to finish.
     myProcess.WaitForExit();
     myProcess.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...