Freigeben über


Registry-Tabelle

Die Registry-Tabelle enthält die Registrierungsinformationen, die die Anwendung in der Systemregistrierung festlegen muss.

Die Registry-Tabelle umfasst die folgenden Spalten.

Spalte Typ Schlüssel Nullwerte zulässig
Registrierung Identifier J N
Root Integer N N
Schlüssel RegPath N N
Name Formatted N J
Wert Formatted N J
Component_ Identifier N N

 

Spalten

Registry

Primärschlüssel, der zum Identifizieren eines Registrierungsdatensatzes verwendet wird.

Root

Der vordefinierte Stammschlüssel für den Registrierungswert. Geben Sie in dieses Feld den Wert „-1“ ein, um den Stammschlüssel vom Installationstyp abhängig zu machen. Geben Sie einen der anderen Werte in die folgende Tabelle ein, um zu erzwingen, dass der Registrierungswert unter einen bestimmten Stammschlüssel geschrieben wird.

Konstant Hexadezimal Decimal Stammschlüssel
(none) -0x001 -1 Wenn es sich um eine benutzerspezifische Installation handelt, wird der Registrierungswert unter HKEY_CURRENT_USER geschrieben. Wenn es sich um eine computerspezifische Installation handelt, wird der Registrierungswert unter HKEY_LOCAL_MACHINE geschrieben. Beachten Sie, dass eine computerspezifische Installation angegeben wird, indem die ALLUSERS-Eigenschaft auf „1“ festgelegt wird.
msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOTDas Installationsprogramm schreibt den Wert aus dem HKCU\Software\Classes-Hive während der Installation in den benutzerspezifischen Installationskontext oder entfernt ihn daraus.
Das Installationsprogramm schreibt den Wert aus dem HKLM\Software\Classes-Hive während computerspezifischer Installationen oder entfernt ihn.
msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER
msidbRegistryRootLocalMachine 0x002 2 HKEY_LOCAL_MACHINE
msidbRegistryRootUsers 0x003 3 HKEY_USERS

 

Es wird empfohlen, Registrierungseinträge, die in den HKCU-Hive geschrieben werden, auf eine Komponente verweisen, deren RegistryKeyPath-Bit in der Attributes-Spalte der Component-Tabelle festgelegt ist. Dadurch wird sichergestellt, dass das Installationsprogramm die erforderlichen Registrierungseinträge schreibt, wenn mehrere Benutzer am selben Computer angemeldet sind.

Key

Der lokalisierbare Schlüssel für den Registrierungswert

Name

Diese Spalte enthält den Namen des Registrierungswerts (lokalisierbar). Wenn dies NULL ist, werden die in die Value-Spalte eingegebenen Daten in den Standardregistrierungsschlüssel geschrieben.

Wenn die Value-Spalte Null ist, haben die in der folgenden Tabelle in der Name-Spalte angezeigten Zeichenfolgen eine besondere Bedeutung.

String Bedeutung
+ Der Schlüssel muss erstellt werden, sofern er nicht vorhanden ist, wenn die Komponente installiert wird.
- Der Schlüssel muss, sofern vorhanden, mit all seinen Werten und Unterschlüsseln gelöscht werden, wenn die Komponente deinstalliert wird.
* Der Schlüssel muss erstellt werden, sofern er nicht vorhanden ist, wenn die Komponente installiert wird. Darüber hinaus muss der Schlüssel, sofern vorhanden, mit all seinen Werten und Unterschlüsseln gelöscht werden, wenn die Komponente deinstalliert wird.

 

Beachten Sie, dass die RemoveRegistry-Tabelle verwendet werden muss, wenn ein installierter Registrierungsschlüssel mit seinen Werten und Unterschlüsseln gelöscht werden soll, wenn die Komponente installiert wird.

Value

Diese Spalte ist der lokalisierbare Registrierungswert. Das Feld ist Formatiert. Wenn der Wert an eines der folgenden Präfixe (d. h. #%value) angefügt ist, wird der Wert so interpretiert, wie in der Tabelle beschrieben. Beachten Sie, dass jedes Präfix mit einem Nummernzeichen (#) beginnt. Wenn der Wert mit zwei oder mehr aufeinanderfolgenden Nummernzeichen (#) beginnt, wird das erste # ignoriert, und der Wert wird als Zeichenfolge interpretiert und gespeichert.

Präfix Bedeutung
#x Der Wert wird als Hexadezimalwert (REG_BINARY) interpretiert und gespeichert.
#% Der Wert wird als erweiterbare Zeichenfolge (REG_EXPAND_SZ) interpretiert und gespeichert.
# Der Wert wird als ganze Zahl (REG_DWORD) interpretiert und gespeichert.

 

  • Wenn der Wert die Sequenz Tilde [~] enthält, wird er als durch NULL getrennte Liste von Zeichenfolgen (REG_MULTI_SZ) interpretiert. Um beispielsweise eine Liste mit den drei Zeichenfolgen a, b und c anzugeben, verwenden Sie „a[~]b[~]c“.
  • Die Sequenz [~] innerhalb des Werts trennt die einzelnen Zeichenfolgen und wird als NULL-Zeichen interpretiert und gespeichert.
  • Wenn der Zeichenfolgenliste ein [~] vorangestellt ist, müssen die Zeichenfolgen an alle vorhandenen Registrierungswertzeichenfolgen angefügt werden. Wenn im Registrierungswert bereits eine angefügte Zeichenfolge vorkommt, wird die ursprüngliche Zeichenfolge entfernt.
  • Wenn auf die Zeichenfolgenliste ein [~] folgt, müssen die Zeichenfolgen allen vorhandenen Registrierungswertzeichenfolgen vorangestellt werden. Wenn im Registrierungswert bereits eine vorangestellte Zeichenfolge vorkommt, wird die ursprüngliche Zeichenfolge entfernt.
  • Wenn sich eine [~] sowohl am Anfang als auch am Ende oder weder am Anfang noch am Ende der Zeichenfolgenliste befindet, ersetzen die Zeichenfolgen alle vorhandenen Registrierungswertzeichenfolgen.
  • Andernfalls wird der Wert als Zeichenfolge (REG_SZ) interpretiert und gespeichert.

Component_

Externer Schlüssel in der ersten Spalte der Component-Tabelle, der auf die Komponente verweist, mit der die Installation des Registrierungswerts gesteuert wird.

Bemerkungen

Die Aktionen WriteRegistryValues und RemoveRegistryValues in Sequenztabellen verarbeiten die Informationen in dieser Tabelle. Informationen zur Verwendung von Sequenztabellen finden Sie unter Verwenden einer Sequenztabelle.

Die Registrierungsinformationen werden in die Systemregistrierung geschrieben, wenn die entsprechende Komponente ausgewählt wurde, um lokal installiert oder aus der Quelle ausgeführt zu werden.

Beachten Sie, dass das Installationsprogramm einen Registrierungsschlüssel entfernt, nachdem der letzte Wert oder Unterschlüssel unter dem Schlüssel entfernt wurde. Um zu verhindern, dass ein leerer Registrierungsschlüssel beim Deinstallieren entfernt wird, schreiben Sie einen Dummywert unter den Schlüssel, den Sie beibehalten müssen, und geben Sie in die Name-Spalte „+“ ein. Wenn sich in der Name-Spalte ein „*“ befindet, wird der Schlüssel mit allen Werten und Unterschlüsseln gelöscht, wenn die Komponente entfernt wird.

Mit einer benutzerdefinierten Aktion können Sie bei einer Installations-, Deinstallations- oder Reparaturtransaktion Zeilen zur Registry-Tabelle hinzufügen. Diese Zeilen werden in der Registry-Tabelle nicht beibehalten, und die Informationen sind nur während der aktuellen Transaktion verfügbar. Die benutzerdefinierte Aktion muss daher bei jeder Installations-, Deinstallations- oder Reparaturtransaktion ausgeführt werden, bei der diese Informationen in den zusätzlichen Zeilen erforderlich sind. Die benutzerdefinierte Aktion muss in der Aktionssequenz vor den Aktionen RemoveRegistryValues und WriteRegistryValues stehen.

Informationen zum Schützen eines Registrierungsschlüssels finden Sie in der MsiLockPermissionsEx-Tabelle und der LockPermissions-Tabelle.

Validierung

ICE02
ICE03
ICE06
ICE32
ICE38
ICE43
ICE46
ICE49
ICE53
ICE55
ICE57
ICE70
ICE80