捕捉控制台输入输出
问题描述:
我有一个控制台应用程序,从控制台读取输入并写入输出到控制台。我需要编写另一个应该运行第一个程序的程序,模拟它的控制台输入并获取输出。你能否提供一个调查这个问题的方法?捕捉控制台输入输出
的控制台应用程序代码(很容易),例如:
string input = Console.ReadLine();
int value = int.Parse(input);
Console.WriteLine(value * value);
答
您可以创建新的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();
你有没有尝试过什么吗?显示您的控制台应用程序代码.. – 2013-04-08 10:38:09
事实是我真不知道如何开始。 – 2013-04-08 10:38:47
你有没有看过'Process'对象?它提供了大量工具,可以轻松地从已启动的应用程序的控制台读取/写入。 – PhonicUK 2013-04-08 10:38:49