2013-04-08 2 views
0

У меня есть консольное приложение, которое считывает ввод с консоли и записывает выходные данные на консоль. Мне нужно написать еще одну программу, которая должна запускать первую, подделать для нее консольный ввод и захватить вывод. Можете ли вы предоставить способ расследования этой проблемы?Консоль ввода-вывода консоли

(очень простой) пример кода приложения консоли:

string input = Console.ReadLine(); 
int value = int.Parse(input); 
Console.WriteLine(value * value); 
+3

Вы пробовали что-нибудь? Покажите свой код консольного приложения. –

+0

Факт в том, что я действительно не знаю, с чего начать. –

+0

Вы вообще посмотрели на объект 'Process'? В нем есть множество инструментов, которые облегчают чтение/запись с консоли на запущенное приложение. – PhonicUK

ответ

2

Вы можете создать новый Process и назначить его StandardInput и StandardOutput свойства.

ProcessStartInfo processStartInfo = 
    new ProcessStartInfo(executableName, executableParameter); 
processStartInfo.UseShellExecute = false; 
processStartInfo.ErrorDialog = false; 
processStartInfo.RedirectStandardError = true; 
processStartInfo.RedirectStandardInput = true; 
processStartInfo.RedirectStandardOutput = true; 
Process process = new Process(); 
process.StartInfo = processStartInfo; 
bool processStarted = process.Start(); 
StreamWriter inputWriter = process.StandardInput; 
StreamReader outputReader = process.StandardOutput; 
StreamReader errorReader = process.StandardError; 
//Write and read process console using inputWriter and outputReader. 
process.WaitForExit();