我试图读取一个控制台的过程用下面的代码的全部内容(3秒后):读控制台处理输出
Dim NewProcess As New System.Diagnostics.Process()
With NewProcess.StartInfo
.FileName = EXE_PATH
.RedirectStandardOutput = True
.RedirectStandardError = True
.RedirectStandardInput = True
.UseShellExecute = False
.WindowStyle = ProcessWindowStyle.Normal
.CreateNoWindow = False
End With
NewProcess.Start()
System.Threading.Thread.Sleep(3000)
MsgBox(NewProcess.StandardOutput.ReadToEnd)
但是,应用程序似乎试图“ReadToEnd的”时暂停,我想这是因为控制台进程是连续的输出,并且永远不会结束。 'ReadLine'工作正常,但只能获得第一行,但我需要在该阶段的控制台的全部内容。
我该如何解决这个问题?
我将如何实现这到我当前的代码?我已经实施它的方式似乎根本不称之为事件。 – user1293575 2012-04-03 16:15:18
增加了一个示例,没有运行它,所以也许错别字,也做了一些C#到VB的转换,所以可能不是100%:-) – brendan 2012-04-03 18:26:35
你会如何使用匿名函数? MSDN似乎暗示它不可能。 。 。 https://msdn.microsoft.com/en-us/library/system.diagnostics.process.outputdatareceived(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2 – 2015-11-24 17:09:39