【问题标题】:Catch console input-output捕获控制台输入输出
【发布时间】:2013-04-08 10:36:53
【问题描述】:

我有一个控制台应用程序,它从控制台读取输入并将输出写入控制台。我需要编写另一个程序来运行第一个程序,为它模拟控制台输入并获取输出。您能否提供一种对此问题的调查方法?

控制台应用程序代码的(非常简单的)示例:

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

【问题讨论】:

  • 您尝试过什么吗?显示您的控制台应用程序代码..
  • 事实是我真的不知道如何开始。
  • 你看过Process对象了吗?它有很多工具可以轻松地从启动的应用程序的控制台读取/写入。
  • 开始关注this question
  • 这个问题应该让你朝着正确的方向前进stackoverflow.com/questions/4291912/…

标签: c#


【解决方案1】:

您可以创建新的Process 并为其分配StandardInputStandardOutput 属性。

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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-21
    • 2011-10-31
    • 2010-11-08
    • 2011-04-25
    • 2014-08-15
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多