Hallo liebes Forum ich melde mich nochmal mti einem kleinen Problem
Ich versuche schon seit Stunden ne Lösung zu finden aber bisher alles ohne Ergebnis.
Und zwar starte ich ein Kommandozeilen Programm und lass mir den Output/ErrorOutput auslesen und anzeigen.
Mit dem Code hier:
Problem ist mit den Argumenten gebe ich an eine RAR Datei zu entpacken, doch wenn diese ein Passwort enthält dann kommt ein Error als Ergebnis mit dem Inhalt "Enter password ... .... ..."
Aber der Error geht nur durch wenn der ganze Prozess geschlossen wird vorher nicht.
Also wie kann ich wenn der Fehler auftritt den Prozess schliessen und mir eine Messagebox anzeigen lassen die mir zb sagt das ein Passwort vorhanden ist.
Nach langer suche auf Google hab ich leider keine möglichkeit gefunden den Error auszulesen bevor der Prozess geschlossen wird, vllt hat da jemand ne Idee.
Danke im voraus.
Ich versuche schon seit Stunden ne Lösung zu finden aber bisher alles ohne Ergebnis.
Und zwar starte ich ein Kommandozeilen Programm und lass mir den Output/ErrorOutput auslesen und anzeigen.
Mit dem Code hier:
VB.NET-Quellcode
- Private Sub ExtractWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles ExtractWorker.DoWork
- Me.UseWaitCursor = True
- Dim RAR As Process = New Process
- Dim RARInfo As New ProcessStartInfo
- Dim Encoding As System.Text.Encoding
- Encoding = System.Text.Encoding.GetEncoding(Globalization.CultureInfo.CurrentUICulture.TextInfo.OEMCodePage)
- RAR.StartInfo = RARInfo
- RAR.EnableRaisingEvents = True
- RARInfo.FileName = RARPath
- RARInfo.WindowStyle = ProcessWindowStyle.Hidden
- RARInfo.UseShellExecute = False
- RARInfo.RedirectStandardError = True
- RARInfo.RedirectStandardOutput = True
- RARInfo.CreateNoWindow = True
- RARInfo.Arguments = "x -o+ " & CurrentFile & " " & SavePath
- RARInfo.StandardOutputEncoding = Encoding
- AddHandler RAR.ErrorDataReceived, AddressOf Async_Data_Received
- AddHandler RAR.OutputDataReceived, AddressOf Async_Data_Received
- RAR.Start()
- RAR.BeginErrorReadLine()
- RAR.BeginOutputReadLine()
- RAR.WaitForExit()
- RAR.Dispose()
- RAR.Close()
- End Sub
Problem ist mit den Argumenten gebe ich an eine RAR Datei zu entpacken, doch wenn diese ein Passwort enthält dann kommt ein Error als Ergebnis mit dem Inhalt "Enter password ... .... ..."
Aber der Error geht nur durch wenn der ganze Prozess geschlossen wird vorher nicht.
Also wie kann ich wenn der Fehler auftritt den Prozess schliessen und mir eine Messagebox anzeigen lassen die mir zb sagt das ein Passwort vorhanden ist.
Nach langer suche auf Google hab ich leider keine möglichkeit gefunden den Error auszulesen bevor der Prozess geschlossen wird, vllt hat da jemand ne Idee.
Danke im voraus.