kostenloser Webspace werbefrei: lima-city


[VB.NET]Kommandozeilenprogramm starten

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    sebastian-online

    sebastian-online hat kostenlosen Webspace.

    [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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!