C#正在将数据重定向到已在运行的控制台exe



我想要做什么:

我想从另一个控制台应用程序(AppA(中启动一个已构建的控制台应用程序。AppA在没有任何参数的情况下启动AppB。AppB所做的只是进入其Main()方法并调用Console.ReadLine()

现在我希望AppA向AppB的Console.ReadLine()发送一个数据字符串。这可能吗?(我知道我可以将流发送到新的Console.exe,但这不是我需要的。(

您需要使用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();

相关内容

  • 没有找到相关文章

最新更新