Home » Tutorials » VCL » Registry

Registry

Wo wird gespeichert?

Wir werfen nun einen Blick auf die Unterschlüssel von HKEY_CURRENT_USER und HKY_LOCAL_MACHINE. Sie sind teilweise recht unterschiedlich, sowohl in der Anzahl als auch in der Benennung. Einen Unterschlüssel haben aber beide: Software. Und auf diesen kommt es uns an. Die anderen haben für uns bei der normalen Arbeit keine Bedeutung.
Öffnen wir den „Software“-Ordner unter HKEY_CURRENT_USER. Von den nun erscheinenden Ordnern (d.h. Unterschlüsseln) wird uns bestimmt der eine oder andere Name bekannt vorkommen. Es handelt sich in der Regel durchgehend um die Namen von Softwareherstellern. Da wir mit Delphi arbeiten, öffnen wir beispielsweise den Schlüssel „Embarcadero“ (oder bei älteren Versionen „Borland“ bzw. „Codegear“). Hier finden wir nun die Namen aller installierten Produkte des Herstellers, z. B. auch Delphi. Unterhalb von Delphi (bzw. „BDS“ für „Borland Deverloper Studio“) folgt die Versionsnummer, z. B. „5.0“. Das entspricht den Standardvorgaben von Microsoft.
Speichert eine Anwendung in die Registry, sollte sie folgende Schlüssel dafür verwenden:

HKEY_CURRENT_USERSoftware<Firma><Produkt><Version>

oder

HKEY_LOCAL_MACHINESoftware<Firma><Produkt><Version>

Um die Übersichtlichkeit in der Registry zu erhalten, sollte dieses Schema beibehalten werden.

Welcher der beiden Hauptschlüssel?

Wer überlegt, in welchen der beiden Hauptschlüssel (HKCU/HKLM) er seine Daten schreiben sollte, der sollte sich für HKEY_CURRENT_USER entscheiden. Der Schlüssel ist flexibler, da jeder Benutzer seine eigenen Daten verwenden kann. Nur Daten, die unabhängig vom Anwender für alle Nutzer der Software gelten sollen, sollten unter HKLM abgelegt werden.
Auch ist zu beachten, dass unter Windows NT/2000/XP und neuer nur Benutzer mit Administrator-Rechten Schreibzugriff auf den HKEY_LOCAL_MACHINE-Schlüssel haben. Das ist einer der Gründe, weshalb viele Software-Installationen mit Administrator-Rechten ausgeführt werden müssen. Auch das Lesen aus diesem Schlüssel funktioniert deshalb nicht normal; dazu später mehr.

64-Bit-Windows: Wow6432Node

Eine weitere Besonderheit stellen 64-Bit-Windows-Versionen dar. Läuft eine 32-Bit-Anwendung unter einem 64-Bit-Windows, führt Windows ein Mapping der Registry-Schlüssel durch. Wenn man z.B. Werte in HKLMSoftwareFirmaProdukt speichern will, landen sie unter HKLMSoftwareWow6432NodeProdukt. Gleiches trifft auch auf den Zweig HKEY_CURRENT_USER zu. Microsoft führt dieses Mapping durch, da 32- und 64-Bit-Anwendungen separate Registry-Einträge haben könnten. Deshalb werden Werte, die ein 32-Bit-Programm schreiben oder lesen will, auf den Unterschlüssel Wow6432Node weitergeleitet. Sofern man nicht auf Keys anderer Anwendungen zugreifen will, ist das jedoch kein Problem.