我正在尝试确定在Windows环境下,通过C#获取已运行进程的命令提示符中的控制台输出的方法。我已经看到了针对Linux系统的解决方案 (通过Shell),以及检索
在我的代码中,我目前通过以下方式找到一个进程(MongodDB守护程序)。
我还发现了
Process
对象的方法。虽然这两者都没有提供获取进程输出的解决方案。在我的代码中,我目前通过以下方式找到一个进程(MongodDB守护程序)。
Process[] procs = Process.GetProcessesByName("mongod");
if (procs.Length > 0)
{
MongoProcess = procs[0];
Console.Out.WriteLine("Found mongod.exe, process id: " + MongoProcess.Id);
}
我还发现了
Process.StandardOutput
属性,它提供了“可以用来读取应用程序标准输出流的StreamReader”。
有没有办法将这个StreamReader
输入直接定向到命令提示符输出?
我也知道我可以启动一个进程并显示命令提示符(进程输出),但这只有在进程是由“我”启动时才能实现。
Process.Start(new ProcessStartInfo("notepad.exe") { CreateNoWindow = false })
我知道我可以直接使用StreamReader
读取并以自己的方式显示输出,但我真的更喜欢显示命令提示符。
C:\Users\whatever>
) - Harry JohnstonProcess.StandardOutput
。) - Harry JohnstonProcess.StandardOutput
,那么可能是不可能的。 - KDecker