VB.Net - Problem mit Umleitung der Standard-Ausgabe
Hi,
habe eine Consolen-Anwendung in VB.Net, welche nichts anderes tut, als in der Console "Hallo Welt!" auszugeben.
Habe weiterhin eine Forms-Anwendung, welche diese Consolen-Anwendung mit Umleitung der Standard-Ausgabe aufruft und versucht, die Ausgabe einzulesen. Und das geht nicht.
ConsolenAnwendung1
Forms-Anwendung
Führe ich die ConsolenAnwendung direkt aus, dann kommt hübsch "Hallo Welt!", wie es sein soll.
Führe ich die Forms-Anwendung aus, dann kommt der Code bis zum Process.Start. Die "ConsolenAnwendung1.exe" erscheint dann auch im Task-Manager. Und nix passiert.
ConsolenAnwendung1 beendet sich nicht.
Beende ich ConsolenAnwendung1 über den Task-Manager, dann macht die Forms-Anwendung weiter, kann dann aber logischerweise die Ausgabe nicht mehr einlesen.
Habe dann in der ConsolenAnwendung1 je vor und nach dem "Console.WriteLine("Hallo Welt!")" eine MsgBox eingebaut. Die erste kommt noch, die zweite nicht mehr.
Beende ich die Forms-Anwendung, dann macht auch die ConsolenAnwendung1 weiter und bringt die 2. MsgBox.
Ich habe das Ganze mal mit dem Aufruf von "cmd.exe /c dir c:\" aus der Forms-Anwendung getestet. Damit funktioniert das. D.h. der Fehler liegt in meiner Consolen-Anwendung.
Was mache ich da falsch? Was muss ich in der Consolen-Anwendung ändern, damit diese auch bei umgeleiteter Standard-Ausgabe mit dem Console.WriteLine weitermacht?
E.
habe eine Consolen-Anwendung in VB.Net, welche nichts anderes tut, als in der Console "Hallo Welt!" auszugeben.
Habe weiterhin eine Forms-Anwendung, welche diese Consolen-Anwendung mit Umleitung der Standard-Ausgabe aufruft und versucht, die Ausgabe einzulesen. Und das geht nicht.
ConsolenAnwendung1
Module Main
Sub Main()
Console.WriteLine("Hallo Welt!")
End Sub
End Module
Forms-Anwendung
Dim Dump As String = Nothing
With New Process
.StartInfo.FileName = "....\ConsolenAnwendung1.exe"
.StartInfo.UseShellExecute = False
.StartInfo.RedirectStandardOutput = True
.Start
.WaitForExit
Dump = .StandardOutput.ReadToEnd
End With
Führe ich die ConsolenAnwendung direkt aus, dann kommt hübsch "Hallo Welt!", wie es sein soll.
Führe ich die Forms-Anwendung aus, dann kommt der Code bis zum Process.Start. Die "ConsolenAnwendung1.exe" erscheint dann auch im Task-Manager. Und nix passiert.
ConsolenAnwendung1 beendet sich nicht.
Beende ich ConsolenAnwendung1 über den Task-Manager, dann macht die Forms-Anwendung weiter, kann dann aber logischerweise die Ausgabe nicht mehr einlesen.
Habe dann in der ConsolenAnwendung1 je vor und nach dem "Console.WriteLine("Hallo Welt!")" eine MsgBox eingebaut. Die erste kommt noch, die zweite nicht mehr.
Beende ich die Forms-Anwendung, dann macht auch die ConsolenAnwendung1 weiter und bringt die 2. MsgBox.
Ich habe das Ganze mal mit dem Aufruf von "cmd.exe /c dir c:\" aus der Forms-Anwendung getestet. Damit funktioniert das. D.h. der Fehler liegt in meiner Consolen-Anwendung.
Was mache ich da falsch? Was muss ich in der Consolen-Anwendung ändern, damit diese auch bei umgeleiteter Standard-Ausgabe mit dem Console.WriteLine weitermacht?
E.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 317060
Url: https://administrator.de/forum/vb-net-problem-mit-umleitung-der-standard-ausgabe-317060.html
Ausgedruckt am: 07.04.2025 um 07:04 Uhr
4 Kommentare
Neuester Kommentar

Hi,
setz mal die Eigenschaft
im process object.
R.
setz mal die Eigenschaft
.StartInfo.CreateNoWindow = True
R.