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-2025
 
zurück

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

VB.NET - Ein- und Umsteiger
Ausgeben einer von einem Programm zurückgegebenen Meldung nicht möglich 
Autor: Steinheimer
Datum: 19.12.07 15:24

Hallo,

erst Mal kurz zur Einführung, was der folgende Code überhaupt bezwecken soll:

Im Moment arbeite ich an einer kleinen Anwendung, welches für eine erfolgreiche Ausführung unter Windows eventuell ein Update benötigt. Falls ein entsprechendes Update benötigt wird, soll dieses installiert werden. Dabei werden zwei Argumente übergeben - "/quiet" und "/norestart" - welche jeweils das Erscheinen des Installations-Fensters sowie einen eventuell benötigten Neustart vermeiden.

Mit folgendem Code-Schnipsel funktioniert das Ganze ohne Probleme:

Imports System.Diagnostics
Imports System.IO
 
Module Module1
 
    Sub Main()
 
        Dim process As New Process()
 
        process.StartInfo.FileName = "Windows6.0-KB925528-x86.msu"
        process.StartInfo.Arguments = "/quiet /norestart"
 
        Try
 
            process.Start()
 
            process.WaitForExit()
 
            process.Close()
 
            Console.WriteLine("Update installiert!")
 
        Catch ex As Exception
 
            Console.WriteLine(ex)
 
        End Try
 
        Console.ReadLine()
 
    End Sub
 
End Module
Nun möchte ich allerdings, dass bei erfolgreichem Durchlaufen des Installations-Prozesses nicht einfach nur "Update erfolgreich installiert!" ausgegeben wird, sondern die Nachricht, welche vom Windows Update-Installer zurückgegeben wird.

Dies können also Meldungen sein, dass beim Installieren ein Fehler aufgetreten ist, dass das Update bereits instaliert wurde oder dass das Update vielleicht gar nicht für das System gedacht ist. Andere Meldungen sind natürlich auch noch möglich, da ich gerade nicht alle Meldungen im Kopf habe, welche die Installation eines Windows Updates zurückgeben kann.

Damit das Ganze funktioniert, müsste der Code also folgendermaßen aussehen:

Imports System.Diagnostics
Imports System.IO
 
Module Module1
 
    Sub Main()
 
        Dim output As String
 
        Dim process As New Process()
 
        process.StartInfo.FileName = "Windows6.0-KB925528-x86.msu"
        process.StartInfo.Arguments = "/quiet /norestart"
 
        process.StartInfo.UseShellExecute = False
        process.StartInfo.RedirectStandardOutput = True
 
        Try
 
            process.Start()
 
            output = process.StandardOutput.ReadToEnd
 
            process.WaitForExit()
 
            process.Close()
 
            Console.WriteLine(output)
 
        Catch ex As Exception
 
            Console.WriteLine(ex)
 
        End Try
 
        Console.ReadLine()
 
    End Sub
 
End Module
Folgende beiden Zeilen müssen dafür scheinbar auf jeden Fall vorhanden sein:

process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardOutput = True
Diese Zeile:

process.StartInfo.UseShellExecute = False
sorgt aber dafür, dass ich den Installations-Prozess des Updates erst gar nicht mehr starten kann, und ich jedes Mal eine Ausnahme bekomme, dass es sich bei der angegebenen Datei um keine gültige Win32-Anwendung handelt.

Dieses Problem hatte ich schon in diesem Thread beschrieben:

http://www.vbarchiv.net/forum/read.php?f=22&i=38942&t=38942

Meine Frage: Was kann ich machen, damit ich trotzdem die zurückgegebene Meldung des Windows Update-Installers ausgeben kann?

Vielen Dank für eure Antworten!
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ausgeben einer von einem Programm zurückgegebenen Meldung ni...652Steinheimer19.12.07 15:24
Re: Ausgeben einer von einem Programm zurückgegebenen Meldun...493TobiasS19.12.07 20:55

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