Aufruf per shell() --> Errorlevel erfragen?


#1
Hi Leute,

habe eine Frage an euch:
Ich führe in VB.Net über die Funktion shell() ein Programm aus:
Bsp: Shell("beispiel.exe", AppWinStyle.MaximizedFocus, True)

Jedes Programm, welches über die Shell aufgerufen wird, liefert ein Errorlevel zurück.
In diesem Errorlevel steht drin, ob die Ausführung problemlos verlief oder ob ein Fehler aufgetreten ist.
Und genau dieses Errorlevel will ich in meinem VB.Net Programm in Erfahrung bringen und auswerten.
Wie komme aber an das Errorlevel ran?

Vielen Dank schonmal im Vorauss!

Gruß
Quintus
 
#2
Habe eine Lösung gefunden:

Code:
Public Sub ShellandWait(ByVal ProcessPath As String, ByVal Arguments As String)
        Dim objProcess As System.Diagnostics.Process
        Try
            objProcess = New System.Diagnostics.Process()
            objProcess.StartInfo.Arguments = Arguments
            objProcess.StartInfo.FileName = ProcessPath
            objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
            objProcess.Start()
            'Warten, bis der Prozess eine ExitCode zurückschmeisst 
            objProcess.WaitForExit()
            'der Exitcode als String
            Console.WriteLine(objProcess.ExitCode.ToString())
            objProcess.Close()
        Catch ex As Exception
            Console.WriteLine("Could not start process " & ProcessPath & "  " & ex.Message.ToString)
        End Try

    End Sub