Запускаю некий процесс (кодироку видео с помощью ffmpeg). Всё работает, но мне нужно прочитать всё, что он выводит в консоль.| Код | Dim ffOutput As System.Text.StringBuilder = Nothing
Function ExecuteFF(ByVal args As String) As String Dim output As String = "" Try Dim p As New System.Diagnostics.Process
p.StartInfo.UseShellExecute = False p.StartInfo.RedirectStandardOutput = True p.StartInfo.FileName = System.IO.Path.GetFullPath("..\bin\ffmpeg.exe") p.StartInfo.Arguments = args
ffOutput = New System.Text.StringBuilder AddHandler p.OutputDataReceived, AddressOf OutputHandler p.Start() p.WaitForExit() p.BeginOutputReadLine() output = ffOutput.ToString Catch ex As Exception System.Console.WriteLine(vbCrLf & "EXCEPTION: " & ex.Message.ToString) End Try Return output End Function
Private Sub OutputHandler(ByVal sendingProcess As Object, ByVal outLine As DataReceivedEventArgs) If Not String.IsNullOrEmpty(outLine.Data) Then ffOutput.Append(outLine.Data) End If End Sub
|
Результат - на экран информация выводится, в переменную не записывается. Пробовал без хэндлера - p.StandardOutput.ReadToEnd - та же ситуация. Что я делаю не так?  |