VisualBasic Wie Prozess Output auslesen bei Prozessausführung

sweety321

Cadet 2nd Year
Registriert
Feb. 2007
Beiträge
22
guten tag,

ich brauche mal eure hilfe...
ich bin ein ziemlicher neu einsteiger in vb.net. ich will mit vb.net ein kommandozeilenprogramm aufrufen und ihm argumente mit geben mit meinem vb.net programm.

soweit so gut alles funktioniert wunderbar.

Code:
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        ' Neuen Prozess erstellen
        '
        Dim programm As Process = New Process
        ' Prozess Details
        programm.StartInfo.FileName = "ping"
        programm.StartInfo.CreateNoWindow = True
        programm.StartInfo.UseShellExecute = False
        programm.StartInfo.Arguments = "computerbase.de -t"
        ' Prozess ein und ausgaben nutzbar machen
        programm.StartInfo.RedirectStandardInput = True
        programm.StartInfo.RedirectStandardOutput = True
        programm.StartInfo.RedirectStandardError = True

        ' Prozess Starten
        programm.Start()

        ' Input Variable
        Dim StdIn As System.IO.StreamWriter = programm.StandardInput
        StdIn.AutoFlush = True ' Puffer automatisch flushen 
        ' Output Variable
        Dim StdOut As System.IO.StreamReader = programm.StandardOutput
        ' Error Variable
        Dim StdErr As System.IO.StreamReader = programm.StandardError

        ' Ausgabe
        lbl_ausgabe.Text = StdOut.ReadToEnd & StdErr.ReadToEnd

        ' Streams schließen 
        StdIn.Close()
        StdOut.Close()
        StdErr.Close()
        '
        ' Neuen Prozess erstellen ende
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Problem an der sache ist, dass der ping befehl durch das anhängsel "-t" dauerthaft ausgeführt wird.

momentan ist es so das sich mein programm aufhängt bzw. sozusagen wartet bis der prozess fertig ist.
ich würde aber gerne alle sekunde einmal die letzte ausgabe ausgeben.

wie kann ich so etwas realisieren?
oder mir würde es auch reichen z.b. alle 5 sekunden oder meinetwegen auch synchron immer die neuen ausgaben auszulesen oder gar alle ausgaben einfach in mein lbl_ausgabe umleiten(sodass ein ping nach dem anderen da hin kommt und nicht gewartet wird auf prozess ende).

Ich hoffe Ihr könnt mir helfen. Vielen dank schon mal im vorraus :)

MFG
sweety321
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben