[VB.NET]Kommandozeilenprogramm starten
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
argument
ausgabe
bekommen
code
einlesen
ereignis
folgender code
konsole
output
programm
start
starten
text
warten
wirkungslos code
-
[SOLVED -> siehe unten]
Hallo zusammen,
ich möchte ein Kommandozeilenprogramm starten innerhalb von VB.
Folgender Code ruft das Programm zwar auf, gibt aber kein Ereignis zurück (Addhandler wirkungslos?):
Dim startInfo As New ProcessStartInfo(Path & "TOP.exe") 'Argumente uebergeben startInfo.Arguments = CBarcode.Text & " " & CRCSfield.Text & " " & CDecisionMap.Text & " " & TClassifierPfad.Text & " " & RSumme.Checked 'keine Konsole startInfo.CreateNoWindow = True startInfo.UseShellExecute = False startInfo.RedirectStandardOutput = True ' Prozess starten oProcess = New Process() oProcess.StartInfo = startInfo AddHandler oProcess.OutputDataReceived, AddressOf WriteProcessOutput oProcess.Start() ' Asynchrones Lesen oProcess.BeginOutputReadLine() ' Warten, bis der Prozess beendet wurde oProcess.WaitForExit() oProcess.Close()
Folgender Code funktioniert seltsamerweise nicht:
Dim p As New Process() p.StartInfo.FileName = "TOP.exe" p.StartInfo.Arguments = CBarcode.Text & " " & CRCSfield.Text & " " & CDecisionMap.Text & " " & TClassifierPfad.Text & " " & RSumme.Checked p.StartInfo.WorkingDirectory = Path p.StartInfo.UseShellExecute = False p.StartInfo.RedirectStandardOutput = True AddHandler p.OutputDataReceived, AddressOf WriteProcessOutput ' Prozess starten p.Start() 'Lesen p.BeginOutputReadLine() ' Warten, bis der Prozess beendet wurde p.WaitForExit() p.Close()
Wie kommt das und wie kann ich trotzdem die Ausgabe einlesen?
Viele Grüße
Sebastian
Ich habe es gerade selber z.T. gelöst. Man kann die Ausgabe auch einfach über output = p.StandardOutput.ReadToEnd() bekommen.
Beitrag zuletzt geändert: 30.6.2012 17:03:39 von sebastian-online -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage