Die Windows-Registry

Diese Informationen wurden in der Windows98-Registry zusammengetragen. Die Daten stimmen mit Win95 bzw. WinME überein, die meisten lassen sich auf WinNT/XP übertragen.

Definition

Die Windows-Registry ist die Datenbank, in der das Betriebssystem und die Anwendungen Daten ablegen. "Installieren" bedeutet meist nicht nur Dateien kopieren, sondern auch Einstellungen in der Registry vorzunehmen. Deinstallieren bedeutet eigentlich dann auch, diese Einstellungen rückgängi zu machen, was selten geschieht. Daher ist ein System nach vielen Deinstallation auch "zugemüllt".

Inhalt

- Einstellungen, die der Benutzer vorgenommen hat
    - Word: Zuletzt geöffnete Datei (MRU, Most Recently Used)
    - Notepad: Zeilenumbruch?

- Systemdaten, die Anwendungen und Windows schnell abfragen können
    - Name des Prozessors
    - Pfad des Icons für .bmp-Dateien

Eigentlich ist so ziemlich alles in der Registrierung gespeichert, was keine Datei ist.

Pro & Contra

Vorteil: Der Zugriff ist schneller, denn beim Starten von Windows wird die gesamte Registry (ca. 10 MB) in der Arbeitsspeicher geladen.
Dieser Speicherverbrauch ist gleichzeitig der Nachteil dieser Speichervariante.
Microsoft empfiehlt: "Generally, data consisting of more than one or two kilobytes (K) should be stored as a file..." (win32sdk).

Ini-Dateien

...waren in Windows 3.1 für die Speicherung der Einstellungen zuständig. Microsoft empfiehlt, in 32-Bit-Systemen (also Win95 oder höher) nur noch die Registry zu benutzen. Da man die Registry jedoch nur über recht unflexible Windows-API-Funktionen erreichen kann, benutzen inzwischen viele Programme (z. B. Winamp, Deus Ex) wieder ini-Dateien. Lassen Sie sich nicht verwirren: Beides hat Vor- und Nachteile. Wenn Sie etwas zu diesem "Streit" beitragen möchten, machen Sie einen Thread im Forum auf.

Aufbau

Die Registry ist hierarchisch aufgebaut. Sie besteht aus Schlüsseln (Keys), Werten (Values) und Daten:

Beispiel

Unter HKEY_CURRENT_USER\Control Panel\Desktop\\Wallpaper (Erklärung unten) ist der Dateiname des aktuellen Desktop-Hintergrundbildes gespeichert.


(Dies ist ein Screenshot vom Windows-RegEdit. Sie starten ihn, indem Sie bei Start\Ausführen... "regedit" eingeben. Vorsicht, ändern Sie nichts, was Sie nicht verstehen, denn es gibt keine "Rückgängig"-Funktion!)

Links: Hier sehen Sie die sogenannten Root Keys oder HKEY. (Die Windows-API arbeitet mit "Handles", deren Namen durch ein H gekennzeichet sind: HWND, HDC.) Stellen Sie sich diese Hauptschlüssel in etwa wie Laufwerke vor. Die Unterschlüssel "ControlPanel" und "Desktop" heißen einfach nur Keys oder Schlüssel. Sie können als Ordner angesehen werden.
Rechts: Hier sehen Sie die Values oder Werte, die sich im aktuellen Schlüssel befinden. Jeder Wert hat einen Wertnamen (Value Name). Sie können sich Werte als Dateien, die Value Names als Dateinamen und Daten als Dateiinhalte vorstellen:

Registry Englisch Ini-Dateien Dateisystem
HKEY Hive Key Datei Laufwerk
Schlüssel Key Sektion Ordner
Wert Value Schlüssel Datei
Wertname Value Name Schlüsselname Dateiname
Daten (Value) Data Schlüsselwert Dateiinhalt

Es gibt mehrere Datentypen für Werte. Hier die wichtigsten:

Typ Länge Bedeutung Beispiel
String beliebig Zeichenketten Dateiname
DWORD 4 Byte Zahlen von 0
bis 4 294 967 295
Schriftgröße
Binary beliebig Binärdaten Verschlüsseltes Passwort

Viele Schlüssel haben einen Standard-Wert. Sein Name ist eigentlich ein Leerstring, doch der RegEdit gibt ihm den Namen "(Standard)" oder "(Default)". Der Hinweis "Wert nicht gesetzt" ist sinnlos, denn der Wert existiert nicht.

HKEYS

Wir sprechen das "Ha-Ki" aus. Nicht verwechseln mit Hotkeys (Tastenkürzel)!
Es gibt genau zwei "echte" HKEYs:

Name ShortHKEY Bedeutung Dateiname
HKEY_LOCAL_MACHINE HKLM Systemdaten SYSTEM.DAT
HKEY_USERS HKU Benutzerdaten und Anwendungen USER.DAT

Darüber hinaus definiert Windows drei "Verknüpfungen" zu Unterschlüsseln:

Verknüpfung (Link oder Shortcut) ShortHKEY Quelle Bedeutung
HKEY_CURRENT_USER HKCU HKEY_USERS\<Benutzername oder ".Default"> aktueller Benutzer
HKEY_CURRENT_CONFIG HKCC HKEY_LOCAL_MACHINE\Config\<Nummer> einige kuriose Einstellungen
HKEY_CLASSES_ROOT HKCR HKEY_LOCAL_MACHINE\Software\CLASSES Einstellungen für Dateien

Sollten Sie bisher gedacht haben, es gäbe mehr als zwei HKEYS, dann lassen Sie sich überzeugen: Probieren Sie es im RegEdit aus oder suchen Sie in Win32.hlp nach "Predifined Keys".
Der RegEdit und die Windows-API behandeln Verknüpfungen und echte HKEYs jedoch gleich. Das geht soweit, dass der RegEdit  dieselben Daten zweimal "findet" (und der viele andere Registrierungseditoren auch).
Es gibt außerdem noch
- HKEY_DYN_DATA (HKDD, Win9x, schreibgeschützt: Hardwaredaten, wie die aktuelle Prozessorauslastung (siehe Systemmonitor.)
- HKEY_PERFORMANCE_DATA (HKPD, haben wir noch nie gesehen).

Die Registrierung macht bei Schlüsseln und Werten keinen Unterschied zwischen Groß- und Kleinschreibung, genau wie das Windows-Dateisystem. Die Namen werden korrekt abgespeichert, aber ohne Unterscheidung behandelt (gilt auch für Umlaute.)
Schlüsselnamen dürfen nicht das Zeichen '\' enthalten und auch keinen Leerstring als Namen haben.
Werte mit dem Namen "(Standard)" etc. sind erlaubt, aber verwirrend.


Sollten Sie Fehler finden oder Anmerkungen haben, mailen Sie mir.