Hallo,
ich starte einen externen Prozess, es handelt sich dabei um eine Konsolenanwendung, welcher beim Start bestimmte Parameter übergeben werden. Diese führt aufgrund dessen, die Arbeit aus, bei welcher Sie fortwährend meldungen zurückliefert. Meldungen wie z.B.:
Bearbeite Datei D:\lulu\lala\lili.jpg
Datei bearbeitet
Bearbeite Datei D:\lulu\lala\lili1.jpg
Datei bearbeitet
Bearbeite Datei D:\lulu\lala\lili2.jpg
Datei bearbeitet
usw. eben den Barbeitungsstatus im weitesten Sinne. Hier mein Code dazu:
p.StartInfo.FileName = Me.TextBoxSelectInstallDir.Text & "\Prozess.exe"
PackPath = " e -kb """ & Me.TextBoxSelect.Text & """ """ & Me.TextBoxSelectDir.Text & """"
MessageBox.Show(PackPath)
p.StartInfo.Arguments = PackPath
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True
p.StartInfo.RedirectStandardError = True
p.StartInfo.CreateNoWindow = True
Try
p.Start()
Me.ProgressBar.Show()
p.WaitForExit()
p.Close()
Me.ProgressBar.Hide()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Nun möchte ich gerne, die Meldungen dieses Prozessen abfangen und verarbeiten, doch möchte ich die Fehlermeldungen/Meldungen EINZELN Ausgeben können, also Zeilenweise in Echtzeit. Mit „ReadToEnd“ komm ich nicht weiter. Ich möchte die Meldungen zum einen in einem Label ausgeben lassen, also so zu sagen den bearbeitungsstatus und zum Anderen auf Fehlermelungen reagieren können.
Folgenermaßen kann so eine Meldung z.B. aussehen:
Die Datei XY existiert bereits!
Soll die Datei überschrieben werden?
[j]a [n]ein [u]mbennenen [a]bbrechen
Lesefehler in Datei
Falscher Handle
Letzten Endes weiss ich so, dass die Datei schon existiert und könnte eben darauf reagieren. doch wie kann ich diese Fehlermeldung aus dem Stream abfangen und entsprechend auswerten.
Ich weiss es ist ne Menge Holz, aber es wäre mir schon wichtig. Vielen Dank schon mal.