1

我的代码是:

Process myProcess = new Process();
myProcess.StartInfo.FileName = @"batchfile.bat";
myProcess.StartInfo.Arguments = "some argument";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.RedirectStandardInput = true;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.Start();
StreamReader sr = myProcess.StandardOutput;
textBox1.Text = sr.ReadToEnd();

myProcess.WaitForExit();

它有效,但我想获得异步输出。

谢谢你的帮助。

4

1 回答 1

1

基本上,您需要在StandardOutput.

要启动异步读取操作,您必须重定向StandardOutput批处理流,向事件添加事件处理程序OutputDataReceived,然后调用BeginOutputReadLine. 此后,OutputDataReceived每次批处理将一行写入重定向的StandardOutput流时,该事件都会发出信号。

您将在MSDN上找到一个完整的示例。

Process类还公开了一个 StandardInput 属性,该属性允许您向进程的标准输入发送命令。

您可能会发现这篇文章很有帮助。

于 2013-11-05T09:19:52.300 回答