vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
readLine aus konsole aber wie? 
Autor: Merkurius
Datum: 17.10.04 02:07

Hallo Leute!
Ich will in VB.Net ein Programm schreiben, dass unterschiedliche Konsolenbefehle ausführt und das Ergebnis dann in einer MessageBox ausgibt!
Ich habe mal mit dem Ping-Befehl angefangen ich weis das kann man auch nur mit vb ralisieren aber es geht ja schließlich net nur um den Ping sondern auch um einige andere Sachen wie nbtstat oder so etwas und ich möchte es über die Konsoloe realisieren das ist wichtig.
Jetzt habe ich nach einiger Recherche was im Netz gefunden und den Code ein bischen geändert, also so, dass der Ping ausgeführt wird und nicht immer der selbe Ping sondern der Ping den man in eine Tex.Box schreibt usw. Das Klappt auch alles wunderbar bis auf das Auslesen des Ergebnises.
Ich habe schon einiges ausprobiert die folge war dann entweder, dass das Programm sich "aufgehängt"(bei ReadToEnd) hatte oder eine leere Zeile angezeigt wurde. So wie der Quelltext jetzt geschrieben ist zeigt er den Befehl in der Message Box an aber nicht mehr.
Meine Frage wäre jetzt wie kriege ich das hin, dass alle Zeilen des Ping ergebnisses angezeigt werden am besten wäre, wenn ihr mir genau sagen könntet wohin das muss und was ich als Folge davon ändern muss als Anfänger sehe ich sonst wieder alt aus

 ' Ping Process-Objekt erzeugen
        Dim PingAnwendung As System.Diagnostics.Process _
                   = New System.Diagnostics.Process
 
        ' Die StartInfo-Struktur des Process-
        ' Objekts mit Informationen befüllen
        With PingAnwendung.StartInfo
 
            ' Befehlszeileninterpreter (COMMAND.COM/CMD.EXE):
            .FileName = Environ("COMSPEC")
 
            ' Kein Konsolenfenster erzeugen:
            .CreateNoWindow = True
 
            ' StandardInput, -Output und -Error umleiten:
            .RedirectStandardInput = True
            .RedirectStandardOutput = True
            .RedirectStandardError = True
 
            ' UseShellExecute MUSS für eine Umleitung
            ' von StdIn, StdOut und StdErr FALSE sein:
            .UseShellExecute = False
 
        End With
 
        ' Den Befehlszeileninterpreter starten:
        PingAnwendung.Start()
        ' StreamReader- und Writer-Objekte für den
        ' Zugriff auf StdIn, StdOut und StdErr erzeugen
 
        ' Über ein StreamWriter-Objekt in StandardInput schreiben
        Dim StdIn As System.IO.StreamWriter = PingAnwendung.StandardInput
        StdIn.AutoFlush = True ' Puffer automatisch flushen
 
        ' Über ein StreamReader-Objekt aus StandardOutput lesen
        Dim StdOut As System.IO.StreamReader = PingAnwendung.StandardOutput
 
        ' Über ein StreamReader-Objekt aus StandardError lesen
        Dim StdErr As System.IO.StreamReader = PingAnwendung.StandardError
        Dim sTemp As String    ' Hilfsvariable
 
        ' Standardausgabe beim Starten des Befehlszeileninterpreters
        ' auslesen und damit aus dem Output-Puffer entfernen:
        sTemp &= StdOut.ReadLine() & vbNewLine
        sTemp &= StdOut.ReadLine() & vbNewLine
        sTemp &= StdOut.ReadLine() & vbNewLine
 
 
        ' Echo-Ausgaben unterdrücken
        StdIn.WriteLine("ECHO On")
 
        ' Einen DIR-Befehl über StdIn absetzen:
        StdIn.WriteLine("Ping" & TextBox1.Text)
 
        ' "ECHO OFF" und Befehlszeile "Ping 192.168.2.1"
        ' beim Auslesen ignorieren:
        sTemp = StdOut.ReadLine()
        sTemp = StdOut.ReadLine()
        sTemp = StdOut.ReadLine()
 
 
 
        MessageBox.Show("Ping Protokoll:" & _
vbCr & sTemp, "Ping")
        ' Befehlszeileninterpreter ggf. "abschießen":
        If Not PingAnwendung.HasExited Then
            PingAnwendung.Kill()
        End If
 
        ' Ressourcen des Process-Objekts freigeben
        PingAnwendung.Close()
schonmal Danke für eure Bemühungen
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
readLine aus konsole aber wie?2.023Merkurius17.10.04 02:07
Re: readLine aus konsole aber wie?1.822ModeratorDaveS17.10.04 10:28
Re: readLine aus konsole aber wie?1.431Merkurius17.10.04 18:59

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel