我試圖讀取一個控制檯的過程用下面的代碼的全部內容(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