c# - 如何写入另一个应用程序的标准输入?

标签 c# .net c#-2.0

我有一个模块可以读取进程的 StandardError。一切正常,但我想做一些不同的事情。我不知道如何像 native 方式那样重定向标准输入:

app1.exe -someargs | app2.exe -someargs

其中 app2 在其标准输入中读取 app1 的所有标准输出。

最佳答案

一旦你有了 Process表示您要与之通信的进程的对象(因为您使用静态方法从操作系统获得它 Process.GetProcesses ,或者因为您自己创建了它),您可以附加一个 StreamWriterProcess.StandardInput属性并使用它写入进程的标准输入。不要忘记设置 ProcessStartInfo.RedirectStandardInput在您新创建的进程上设置为 true

在相关说明中,您可以使用 StreamReaderProcess.StandardOutput 上读取输出(如从 StandardError 读取)。

关于c# - 如何写入另一个应用程序的标准输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2613161/

相关文章:

c# - 在非托管 C++ 中创建的 DX11 设备,用于 WPF 窗口

c# - System.Runtime.InteropServices.ComTypes.IStream 到 System.IO.Stream

.net - .Net 2.0 的代码契约和防御性编程库?

wmi - 通过 WMI 启用 UWF

c# - 我有这个错误 : Error 2 Inconsistent accessibility: return type 'johny.Form1.CoOrds' is less accessible than method 'johny. Form1.toto()

c# - 通用列表中的属性名称相同但返回类型不同

C#,处理文件, "Unauthorized Access"?

c# - 使用 WebApi ( $inlinecount ) 的 OData 分页

asp.net - 使用 SmtpClient 发送邮件

c# - Process.Start 使用 UAC on 的不同凭据