Share via


Erstellen eines ProgressBar-Steuerelements

Windows Installer enthält Funktionen zum Anzeigen einer Statusanzeige in einem Aktionsanzeigedialogfeld. Das ProgressBar-Steuerelement stellt die Installation einzelner Komponenten grafisch dar und gibt entweder die gesamt verstrichene Zeit im Verhältnis zur verbleibenden Zeit oder die ungefähr verbleibende Zeit bis zum Abschluss der Installation an.

Um die für die Installation erwartete Gesamtzeit zu ermitteln, verfolgt das Installationsprogramm die gesamten Statuszeiteinheiten nach, die von jeder Aktion während der Generierung des Ausführungsskripts erwartet werden. Wenn die Skriptgenerierung abgeschlossen ist, werden die gesamten der Statuszeiteinheiten gespeichert und die Installation beginnt.

Statusmeldungen, die die abgelaufene Anzahl von Statuszeiteinheiten angeben, werden an den aktiven Nachrichtenhandler gesendet, wenn die einzelnen Aktionen im Skript ausgeführt werden. Bei jeder Statusmeldung sendet das Installationsprogramm ein SetProgress-Steuerelementereignis an das aktuell aktive Dialogfeld. Die UI-Sequenz sollte erstellt werden, um das Aktionsanzeigedialogfeld während der Skriptausführung zu erstellen, um die SetProgress ControlEvent-Meldungen vom Installationsprogramm zu empfangen.

Wenn das Aktionsanzeigedialogfeld ein „SetProgress ControlEvent“ empfängt, überprüft es die EventMapping-Tabelle auf alle Steuerelemente, die das Steuerelementereignis abonnieren. Das ProgressBar-Steuerelement im Aktionsanzeigedialogfeld wird mit dem in der Attributes-Spalte angegebenen Progress-Steuerelementattribut abonniert. Das Progress-Steuerelementattribut gibt an, dass dem ProgressBar-Steuerelement zusammen mit dem SetProgress-Steuerelementereignis die Werte „ticksSoFar“ und „totalTicks“ übergeben werden. Das Statusanzeige-Steuerelement verwendet diese Informationen, um die grafische Leiste bei einer Installation von links nach rechts und bei einem Rollbackvorgang von rechts nach links zu bewegen.

Darüber hinaus sendet das Installationsprogramm für jede Statusmeldung ein TimeRemaining-Steuerelementereignis. Die verbleibende Gesamtzeit für die Installation wird ermittelt, indem zunächst die Ausführungsrate berechnet wird, d. h. die Gesamtzahl abgelaufener Zeiteinheiten geteilt durch die Gesamtzeit seit Beginn der Installation. Die verbleibende Gesamtzahl von Zeiteinheiten geteilt durch die Ausführungsrate gibt die ungefähr verbleibende Zeit an.

Wenn das Dialogfeld für die Aktionsanzeige das TimeRemaining-Steuerelementereignis empfängt, sucht es erneut in der EventMapping-Tabelle nach allen abonnierten Steuerelementen. Um die verbleibende Zeit anzuzeigen, muss ein Text-Steuerelement für das TimeRemaining-Steuerelementereignis mit dem in der Attributes-Spalte angegebenen TimeRemaining-Steuerelementattribut abonniert werden.

Das abonnierte Text-Steuerelement fragt die UIText-Tabelle nach einer parametrisierten Vorlagenzeichenfolge namens „TimeRemaining“ ab. Diese Zeichenfolge hat zwei Parameter, [1] für Minuten und [2] für Sekunden. Das Text-Steuerelement konvertiert jeden Wert in Minuten und Sekunden, wertet die TimeRemaining-Vorlagenzeichenfolge aus und aktualisiert das Textsteuerelement mit den neuen Informationen.

Wenn die Anzeigeebene der Benutzeroberfläche auf „Basic“ oder niedriger festgelegt ist, zeigt das Installationsprogramm ein Standarddialogfeld mit einer Statusleiste und dem TimeRemaining-Textfeld an. Weitere Informationen finden Sie unter Benutzeroberflächenebenen.