Gibt es jemanden, der mir helfen kann, von der Konsole Ausgabe vor dem Prozess zu beenden.Echtzeit-Ausgabe zeigt in RichTextbox
Ich habe eine Drittanbieter-Konsole-Anwendung und seine Anwendung wahrscheinlich nicht die Daten nach jeder Zeile zu leeren und ich kann nicht lesen.
Gibt es einen anderen Weg als Prozess wie Shell oder Verwenden einer beliebigen Windows-API zu verwenden, um Daten von der Konsole während der Laufzeit zu lesen?
Hier ist mein Code:
Private Sub StartMiner()
MinerProcess = New Process
MinerProcess.StartInfo.CreateNoWindow = False
MinerProcess.StartInfo.FileName = "abc.exe"
MinerProcess.StartInfo.UseShellExecute = False
MinerProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
MinerProcess.StartInfo.RedirectStandardOutput = True
MinerProcess.StartInfo.RedirectStandardError = True
MinerProcess.EnableRaisingEvents = True
MinerProcess.StartInfo.Arguments = "--server abc"
MinerProcess.BeginOutputReadLine()
MinerProcess.BeginErrorReadLine()
MinerProcess.Start()
MinerProcess.WaitForExit()
End Sub
Private Sub MinerProcess_OutputDataReceived(sender As Object, e As DataReceivedEventArgs) Handles MinerProcess.OutputDataReceived
If Me.InvokeRequired Then
Me.BeginInvoke(CType(Sub()
RichTextBox1.Text = RichTextBox1.Text & e.Data & Environment.NewLine
End Sub, MethodInvoker))
Else
RichTextBox1.Text = RichTextBox1.Text & e.Data & Environment.NewLine
End If
End Sub
Auch habe ich versucht, mit lesen, Beginread, Readline, ReadToEnd aber nichts arbeiten, wie ich brauche. Alle Methoden funktionieren, zeigen aber die Ausgabe an, wenn ich den Prozess beende und die Konsolendatei einen lang andauernden Prozess ausführt. Daher kann sie nicht geschlossen und erneut geöffnet werden, um die Ausgabe zu erhalten.
ich habe versucht, Kumpel aber es zeigt lesen Ausgabe nach der Konsole zu beenden – SunnyGRT
@SunnyGRT so können Sie überprüfen, ob der Prozess noch am Leben ist, oder? –
Nein, ich kann den Fortschritt nicht live verfolgen. Wenn der Prozess beendet wird, wird die Ausgabe angezeigt. – SunnyGRT