Zurückgeben von Fehlermeldungen aus benutzerdefinierten Aktionen
In diesem Abschnitt wird beschrieben, wie Sie Nachrichten von benutzerdefinierten Aktionen senden, die tatsächlich einen Teil der Installation ausführen, indem Sie eine Dynamic Link Library oder ein Skript aufrufen. Beachten Sie, dass der benutzerdefinierte Aktionstyp 19 nur eine angegebene Fehlermeldung sendet, einen Fehler zurückgibt und dann die Installation beendet. Der benutzerdefinierte Aktionstyp 19 führt keinen Teil der Installation aus.
Um eine Fehlermeldung von einer benutzerdefinierten Aktion zu senden, die eine Dynamic Link Library (DLL) verwendet, rufen Sie mit der benutzerdefinierten Aktion MsiProcessMessage auf. Beachten Sie, dass benutzerdefinierte Aktionen, die von einem DoAction ControlEvent gestartet werden, Nachrichten mit der Message-Methode senden können, aber keine Nachricht mit MsiProcessMessage senden können. Auf Systemen vor Windows Server 2003 können benutzerdefinierte Aktionen, die von einem DoAction ControlEvent gestartet werden, keine Nachrichten mit der MsiProcessMessage- oder Message-Methode senden. Weitere Informationen finden Sie unter Senden von Nachrichten an Windows Installer mit msiProcessMessage.
So zeigen Sie eine Fehlermeldung innerhalb einer benutzerdefinierten Aktion mithilfe einer DLL an
- Die benutzerdefinierte Aktion sollte MsiProcessMessage aufrufen und die Parameter hInstall, eMessageType und hRecord übergeben. Das Handle für die Installation( Benutzerdefinierter Aktionstyp 19) kann für die benutzerdefinierte Aktion bereitgestellt werden, wie unter Zugreifen auf die aktuelle Installersitzung von innerhalb einer benutzerdefinierten Aktion oder von MsiOpenProduct oder MsiOpenPackagebeschrieben.
- Der Parameter eMessageType sollte einen der Nachrichtentypen angeben, wie in MsiProcessMessage aufgeführt.
- Der hRecord-Parameter der MsiProcessMessage-Funktion hängt vom Nachrichtentyp ab. Siehe Senden von Nachrichten an Windows Installer mit msiProcessMessage. Wenn die Nachricht formatierte Daten enthält, geben Sie die Meldung in die Tabelle Fehler ein, indem Sie die in Formatierte beschriebene Formatierung verwenden.
Um eine Fehlermeldung von einer benutzerdefinierten Aktion zu senden, die Skriptsverwendet, kann die benutzerdefinierte Aktion die Message-Methode des Session-Objekts aufrufen.
So zeigen Sie eine Fehlermeldung innerhalb einer benutzerdefinierten Aktion mithilfe eines Skripts an
- Die benutzerdefinierte Aktion sollte die Message-Methode des Session-Objekts aufrufen und die Parameterart und den Datensatz übergeben.
- Die Parameterart sollte einen der nachrichtentypen angeben, die in der Message-Methode aufgeführt sind.
- Der Record-Parameter der Message-Methode hängt vom Nachrichtentyp ab. Wenn die Nachricht formatierte Daten enthält, geben Sie die Meldung in die Tabelle Fehler ein, indem Sie die in Formatierte beschriebene Formatierung verwenden.
Benutzerdefinierte Aktionen, die ausführbare Dateien verwenden, können keine Nachricht senden, indem sie MsiProcessMessage oder die Message-Methode aufrufen, da sie kein Handle für die Installation erhalten können.