vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Starten mehrerer Konsolenanwendung mit dem Auslesen des Outputs 
Autor: oimel
Datum: 17.07.15 21:11

Hallo,
Ich versuche mehrere Konsoleanwendungen zu starten und das Auslesen des Outputs dynamisch aufzusetzen. Das ist mein Code aktuell:
Public Delegate Sub InvokeWithString(ByVal text As String)
 
Private Sub Core_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  Dim systemencoding As System.Text.Encoding = System.Text.Encoding.GetEncoding( _
    Globalization.CultureInfo.CurrentUICulture.TextInfo.OEMCodePage)
 
  Dim startInfo As New ProcessStartInfo
  With startInfo
    .FileName = "rtmpdump.exe"
    .Arguments = "-v -r " & currentStreamer & " -y " & currentServerFile & " -o" & _
      "" & currentLocalFile & ".flv"
    .UseShellExecute = False
    .RedirectStandardError = True
    .RedirectStandardOutput = True
    .RedirectStandardInput = True
    .CreateNoWindow = True
    .StandardOutputEncoding = systemencoding
    .StandardErrorEncoding = systemencoding
  End With
 
  Dim rtmpdump As New Process With {.StartInfo = startInfo, _
    .EnableRaisingEvents = True}
 
  AddHandler rtmpdump.ErrorDataReceived, AddressOf Async_Data_Received
  AddHandler rtmpdump.OutputDataReceived, AddressOf Async_Data_Received
  AddHandler rtmpdump.Exited, AddressOf CMD_Exited
 
  rtmpdump.Start()
  rtmpdump.BeginOutputReadLine()
  rtmpdump.BeginErrorReadLine()
End Load
 
Private Sub CMD_Exited(ByVal sender As Object, ByVal e As EventArgs)
  MessageBox.Show("RTMP Thread was terminated", "Warning", _
    MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Sub
 
Private Sub Async_Data_Received(ByVal sender As Object, ByVal e As _
  DataReceivedEventArgs)
  Invoke(New InvokeWithString(AddressOf Sync_Output), e.Data)
End Sub
 
Private Sub Sync_Output(ByVal text As String)
  TextBox_log.AppendText(text & Environment.NewLine)
  TextBox_log.ScrollToCaret()
End Sub
Das funktioniert soweit für eine Anwendung. Der Nutzer wird die Möglichkeit haben mehrere Applikationen zu starten. Wie unterscheide ich diese beim Output Auslesen?

Danke im Voraus!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Starten mehrerer Konsolenanwendung mit dem Auslesen des Outputs 
Autor: ModeratorDaveS (Moderator)
Datum: 21.07.15 18:27

Bei Private Sub Async_Data_Received(ByVal sender As Object, ByVal e As DataReceivedEventArgs)

sollte sender der Prozess sein, der das Event abfeuert. Du hast daher eine Verbindung zum jeweiligen Prozess wenn du diese in etwa einem Dictionary aufbewahrst.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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