先启动一个exe,用GetProcesses();捕获到,传给一个新建的process实例,用BeginOutputReadLine();打印输出,显示未重定向数据流
Process.Start("E:1\\1.exe");
Process[] jincheng = Process.GetProcesses();
for(int i=0;i<jincheng.Length;i++)
{
if (jincheng[i].ProcessName == "1")
{
Process jicheng1 = jincheng[i];
jicheng1.StartInfo.RedirectStandardOutput = true;
jicheng1.StartInfo.UseShellExecute = false;
jicheng1.OutputDataReceived += Process_OutputDataReceived;
jicheng1.BeginOutputReadLine();
break;
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"E:\1\1.exe";
Process process = new Process();
process.StartInfo = startInfo;
process.OutputDataReceived += Process_OutputDataReceived;
process.Start();
process.BeginOutputReadLine();
Console.ReadLine();
}
private static void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (!string.IsNullOrEmpty(e.Data))
{
Console.WriteLine(e.Data);
}
}
}
using System;
using System.Diagnostics;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Process process = new Process();
process.StartInfo.FileName = "E:\\1\\1.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += Process_OutputDataReceived;
process.Start();
process.BeginOutputReadLine();
Console.WriteLine("点击任意键退出");
Console.ReadKey();
}
static void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
}
}
}
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢