Freigeben über


Session.Message-Methode

Die Message-Methode des Sessions-Objekts führt alle aktivierten Protokollierungsvorgänge aus und stellt die Ausführung an das Benutzeroberflächenhandler-Objekt (UI Handler) zurück, das der Engine zugeordnet ist. Die Protokollierung kann für die verschiedenen Meldungstypen selektiv aktiviert werden. Weitere Informationen finden Sie unter der EnableLog-Methode.

Wenn Datensatzfeld 0 eine Formatierungszeichenfolge enthält, wird diese verwendet, um die Daten in den anderen Feldern zu formatieren. Wenn es sich bei der Meldung um einen Fehler, eine Warnung oder eine Benutzermeldung handelt, wird versucht, eine Meldungsvorlage in der Error-Tabelle für die aktuelle Datenbank zu finden, wobei die Fehlernummer aus Datensatzfeld 1 für Meldungstypen und Rückgabewerte verwendet wird.

Syntax

Session.Message(
  kind,
  record
)

Parameter

kind

Der Parameter kind muss einer der folgenden Werte aufweisen. Um ein Meldungsfeld mit Push-Schaltflächen und Symbolen anzuzeigen, berechnen Sie den Wert für kind, indem Sie die von MessageBox und MessageBoxEx verwendeten Standard-Meldungsformatvorlagen zu msiMessageTypeError, msiMessageTypeWarning oder msiMessageTypeUser hinzufügen. Weitere Informationen finden Sie im nachfolgenden Abschnitt mit Hinweisen.

Konstante Bedeutung
msiMessageTypeFatalExit
&H00000000
Vorzeitige Beendigung, möglicherweise kritischer Speichermangel.
msiMessageTypeError
&H01000000
Formatierte Fehlermeldung, [1] ist die Meldungsnummer in der Error-Tabelle.
msiMessageTypeWarning
&H02000000
Formatierte Warnmeldung, [1] ist die Meldungsnummer in der Error-Tabelle.
msiMessageTypeUser
&H03000000
Benutzeranforderungsmeldung, [1] ist die Meldungsnummer in der Error-Tabelle.
msiMessageTypeInfo
&H04000000
Meldung mit Informationen für das Protokoll, nicht für Anzeige.
msiMessageTypeFilesInUse
&H05000000
Liste der verwendeten Dateien, die ersetzt werden müssen.
msiMessageTypeResolveSource
&H06000000
Anforderung zum Ermitteln eines gültigen Quellspeicherorts.
msiMessageTypeOutOfDiskSpace
&H07000000
Meldung, dass nicht genügend Speicherplatz vorhanden ist.
msiMessageTypeActionStart
&H08000000
Start der Aktion, [1] Aktionsname, [2] Beschreibung, [3] Vorlage für ACTIONDATA-Meldungen.
msiMessageTypeActionData
&H09000000
Aktionsdaten. Datensatzfelder entsprechen der Vorlage der ACTIONSTART-Meldung.
msiMessageTypeProgress
&H0A000000
Statusanzeigeinformationen. Weitere Informationen finden Sie nachfolgend in der Beschreibung der Datensatzfelder.
msiMessageTypeCommonData
&H0B000000
Um die Abbrechen-Schaltfläche zu aktivieren, legen Sie [1] auf 2 und [2] auf 1 fest.
Um die Abbrechen-Schaltfläche zu deaktivieren, legen Sie [1] auf 2 und [2] auf 0 fest

 

record

Erforderliches Record-Objekt, das ein meldungsspezifisches Feld enthält.

Rückgabewert

Konstante Wert
msiMessageStatusError
-1
msiMessageStatusNone
0
msiMessageStatusOk
1
msiMessageStatusCancel
2
msiMessageStatusAbort
3
msiMessageStatusRetry
4
msiMessageStatusIgnore
5
msiMessageStatusYes
6
msiMessageStatusNo
7

 

Bemerkungen

Meldungsdatensatzfelder

Im Folgenden werden die Datensatzfelddefinitionen beschrieben, wenn „msiMessageTypeProgress“ als Meldungstyp übergeben wird.

Feld 1 gibt den Typ der Statusmeldung an. Die Bedeutung der anderen Felder hängt vom Wert in diesem Feld ab. Die möglichen Werte, die in Feld 1 festgelegt werden können, lauten wie folgt.

Nachrichtenname Wert Beschreibung von Feld 1
MasterReset 0 Setzt die Statusanzeige zurück und legt die erwartete Gesamtanzahl von Teilstrichen in der Leiste fest.
ActionInfo 1 Stellt Informationen in Zusammenhang mit Statusmeldungen bereit, die von der aktuellen Aktion gesendet werden sollen.
ProgressReport 2 Erhöht die Statusanzeige.
ProgressAddition 3 Ermöglicht einer Aktion (z. B. CustomAction) das Hinzufügen von Teilstrichen zur erwarteten Gesamtanzahl des Fortschrittsbalkens.

 

Die Bedeutung von Feld 2 hängt wie folgt vom Wert in Feld 1 ab.

Wert von Feld 1 Beschreibung von Feld 2
0 Erwartete Gesamtanzahl von Teilstrichen in der Statusleiste.
1 Anzahl von Teilstrichen, um die der Statusbalken für jede ActionData-Meldung fortschreitet. Dieses Feld wird ignoriert, wenn Feld 3 „0“ ist.
2 Anzahl von Teilstrichen, um die der Fortschrittsbalken verschoben wurde.
3 Anzahl der Teilstrichen, die zum erwarteten Gesamtfortschritt hinzugefügt werden sollen.

 

Die Bedeutung von Feld 3 hängt wie folgt vom Wert in Feld 1 ab.

Wert von Feld 1 Wert von Feld 3 Beschreibung von Feld 3
0 0 Statusanzeige vorwärts (von links nach rechts)
  1 Statusanzeige rückwärts (von rechts nach links)
1 0 Die aktuelle Aktion sendet explizite ProgressReport-Meldungen.
  1 Fortschrittsbalken wird jedes Mal, wenn eine ActionData-Meldung gesendet wird, um die Anzahl der in Feld 2 angegebenen Teilstriche verschoben.
2 Nicht verwendet
3 Nicht verwendet

 

Die Bedeutung von Feld 4 hängt wie folgt vom Wert in Feld 1 ab.

Wert von Feld 1 Wert von Feld 4 Beschreibung von Feld 4
0 0 Wird ausgeführt. In diesem Fall könnte die Benutzeroberfläche die verbleibende Zeit berechnen und anzeigen.
  1 Ausführungsskript wird erstellt. In diesem Fall kann auf der Benutzeroberfläche eine „Bitte warten“-Meldung angezeigt werden, während das Installationsprogramm die Installation vorbereitet.
1 Nicht verwendet
2 Nicht verwendet
3 Nicht verwendet

 

Anzeigen von Meldungsfeldern

Um ein Meldungsfeld mit Push-Schaltflächen und Symbolen anzuzeigen, berechnen Sie den Wert für kind, indem Sie die von MessageBox und MessageBoxEx verwendeten Standard-Meldungsformatvorlagen zu msiMessageTypeError, msiMessageTypeWarning oder msiMessageTypeUser hinzufügen. Die verfügbaren Push-Schaltflächenoptionen für VBScript sind „vbOKOnly“ (MB_OK), „vbOKCancel“ (MB_OKCANCEL), „vbAbortRetryIgnore“ (MB_ABORTRETRYIGNORE), „vbYesNoCancel“ (MB_YESNOCANCEL), „vbYesNo“ (MB_YESNO) und „vbRetryCancel“ (MB_RETRYCANCEL). Die verfügbaren Symboloptionen für VBScript sind „vbCritical“ (MB_ICONERROR), „vbQuestion“ (MB_ICONQUESTION), „vbExclamation“ (MB_ICONWARNING) und „vbInformation“ (MB_ICONINFORMATION).

Der folgende Aufruf sendet beispielsweise eine msiMessageTypeError-Meldung mit dem vbExclamation-Symbol und vbYesNo-Schaltflächen.

Session.Message &H01000034, record

Wenn eine benutzerdefinierte Aktion die Message-Methode aufruft, sollte die benutzerdefinierte Aktion in der Lage sein, einen Abbruch durch den Benutzer zu verarbeiten und msiDoActionStatusUserExit zurückgeben.

Anforderungen

Anforderung Wert
Version
Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer unter Windows Server 2003 oder Windows XP
DLL
Msi.dll
IID
IID_ISession ist definiert als 000C109E-0000-0000-C000-000000000046