SWREG

Der nachfolgende Text wurde kopiert von: winfaq.de

Nähere Angaben zum Aufbau der Registry

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_LOCAL_MACHINE
HKEY_CURRENT_USER
HKEY_USERS
Datentypen

Veraltet

Zusätzlich unter Regedit.exe sind noch als Zweige zu sehen:
HKEY_DYN_DATA (Diesen Schlüssel gibt es nur unter Windows 95/98 und ME.)
HKEY_PERFORMANCE_DATA (nur Windows NT)

Diese Unterteilungen sind nun noch in weitere Unterschlüssel aufgegliedert (wie die INI-Dateien in Sektionen [386Enh], [boot], [network] usw.). Bei der Registry-Datei ist die Aufteilung aber viel genauer.

Jeder Schlüssel kann weitere Unterschlüssel und (im rechten Fensterteil) Werteinträge enthalten. Diese Werteinträge setzen sich aus drei Teilen zusammen:
“Name”,
“Datentyp”
“Wert”.
Windows NT kennt standardmäßig 5 , Windows 95/98 nur 3 Datentypen. Es besteht aber die Möglichkeit, jederzeit benutzerdefinierte Datentypen hinzuzufügen.
Einige Einträge in der Registry sind doppelt vorhanden. Eine Änderung wirkt sich aber immer auf beide aus, da sie unter einander verknüpft sind.
Des Weiteren ist es möglich, dass Sie widersprüchliche Angaben finden.
In diesem Fall haben immer die USER-spezifischen Einstellung Vorrang (also HKEY_CURRENT_USER hat Vorrang vor den Einstellungen unter HKEY_LOCAL_MACHINE).

Info: Bei der Bearbeitung der Registrydatenbank sollten Sie bedenken, dass alle Änderungen sofort gespeichert werden!

HKEY_CLASSES_ROOT

Der Hauptschlüssel HKEY_CLASSES_ROOT ist ein Verweis auf HKEY_LOCAL_MACHINE\Software\Classes. Durchlaufen Sie HKEY_CLASSES_ROOT, so werden Sie auf eine lange Liste von Dateinamenserweiterungen, etwa EXE oder BMP, stoßen. Die meisten Erweiterungen haben zwar keine Unterschlüssel, besitzen aber Zeichenkettenwerte wie “EXEFILE” für EXE-Dateien und “Paint.Picture” für BMP-Dateien.

Weiter unten im Zweig Classes finden Sie die Unterschlüssel zu diesen Zeichenketten. Diese Unterschlüssel enthalten typischerweise weitere Schlüssel, etwa “DefaultIcon” (das Symbol, mit dem Dateien vom betreffenden Typ von der Shell angezeigt werden), “Shell” (Angaben über das Öffnen und Drucken dieses Dateityps) und “Shellex” (enthält eine Liste der Shell Extensions: Erweiterungen des Kontextmenüs und der Registerkarte für die Einstellungen sowie weitere Plug-in-Softwarekomponenten, die von der Windows 95-Shell unterstützt werden).

HKEY_CLASSES_ROOT ist also eine Datenbank voller Anweisungen, anhand derer die Shell andernfalls gewöhnliche Dateien so handhaben kann, als würde es sich um Dokumente handeln, deren internes Dateiformat sie versteht.
Angenommen, Sie doppelklicken auf eine BMP-Datei oder klicken mit der rechten Maustaste darauf und wählen “Öffnen” aus dem Kontextmenü. Frage, woher weiß die Shell jetzt, wie sie diese BMP-Datei öffnen soll?
Ganz einfach: Sie sucht in HKEY_CLASSES_ROOT nach einem BMP-Eintrag und stößt dabei auf “Paint.Picture”. Daraufhin befragt sie den Eintrag “Paint.Picture” nach dem Kommando zum Öffnen der BMP-Datei. In diesem Fall enthält “Paint.Picture” einen Unterschlüssel Shell\Open\Command mit dem Standardwert MSPAINT %1, was der Shell sagt, dass MSPAINT (Paintbrush) zusammen mit dem Dateinamen zu starten sind. Daraufhin startet MSPAINT und lädt die betreffende BMP-Datei.
Hätten Sie statt dessen verlangt, die Bilddatei zu drucken, so hätte sich die Shell in HKEY_CLASSES_ROOT\Paint.Picture\Shell\Print\Command das entsprechende Kommando zum Drucken gesucht (MSPAINT /P %1).

Beispiel: Mit dem Registry-Editor können Sie Windows anpassen, indem Sie dem Kontextmenü eigene Kommandos hinzufügen.

Wollen Sie etwa dem Kontextmenü von ZIP-Dateien ein Unzip-Kommando hinzufügen, welches dann PKUNZIP aufruft, so führen Sie folgende Schritte aus:
Erstellen Sie unter HKEY_CLASSES_ROOT einen Unterschlüssel namens .ZIP. Setzen Sie seinen Standardwert auf ZIPFILE.
Erstellen Sie unter HKEY_CLASSES_ROOT drei aufeinander folgende Unterschlüssel mit folgenden Namen Zipfile\Shell\Unzip. Setzen Sie seinen Standardwert auf &Unzip (das (&) Et-Zeichen definiert dabei die Shortcut-Taste [U]).
Fügen Sie HKEY_CLASSES_ROOT\Zipfile\Shell\Unzip einen Kommandounterschlüssel hinzu. Setzen Sie dessen Standardwert auf das Kommando, das PKUNZIP zusammen mit dem Dateinamen startet – beispielsweise C:\DOS UTIL\PKUNZIP %1. Jetzt können Sie die ZIP-Datei einfach dadurch auspacken, indem Sie diese mit der rechten Maustaste anklicken und die entsprechende Option aus dem Kontextmenü wählen.



HKEY_CLASSES_ROOT (HKEY_LOCAL_MACHINE\Software\Classes)


SchlüsselUnterschlüsselNameWertBeschreibung
*   Gültig für alle Dateitypen
 QuickViewStandard*Quick-View im Kontextmenü
 Shell  Hat verschiedene Unterschlüssel. Deren Werte sind unter Class-Definitions aufgeführt.
 Shellex  Hier können sich Programme eintragen, die im Explorer und Desktop integriert sein sollen.

SchlüsselUnterschlüsselNameWertBeschreibung
.EXT StandardClass-DefinitionZeigt auf die Class-Definition. Dieser Name kann nach Belieben gewählt werden, normalerweise Ext-File.
 ShellNewStandardnicht gesetztFügt Neu\Datei ins Kontextmenü ein.
  NullFilenicht gesetztNeue Datei ohne Vorlage
  FileNameDateinameNeue Datei nach Vorlage, diese befindet sich (normalerweise) in ShellNew.
  CommandBefehlszeileÖffnet die Datei, nachdem sie erstellt wurde.

SchlüsselUnterschlüsselNameWertBeschreibung
Class-Definition StandardNameDieser Name erscheint unter Ansicht\Optionen…\Dateitypen im Explorer.
  EditFlagsBinärwert4 Bytes enthaltender Binärwert; Beschreibung siehe dort
  NeverShowExtnicht gesetztZeichenfolge; die Endung wird im Explorer nicht angezeigt, auch wenn “Keine MS-DOS-Erweiterungen für registrierte Dateien” nicht markiert ist.
  AlwaysShowExtnicht gesetztZeichenfolge; die Endung wird im Explorer immer angezeigt, auch wenn “Keine MS-DOS-Erweiterungen für registrierte Dateien” markiert ist.
  IsShortcutnicht gesetztZeichenfolge; Shortcut-Icon Overlay wird angezeigt.
 QuickViewStandard* 
 DefaultIconStandard%1 oder
Dateiname,#
Gibt das Icon an. Für # ist die entsprechende Nummer anzugeben.
 ShellStandardnicht gesetzt oder Name eines UnterschlüsselsGibt die Standard-Aktion an (auf Doppelklick), wenn der Wert nicht gesetzt ist, ist Open die Standard-Aktion.
 Shell\OpenStandardnicht gesetzt oder benutzerdefinierter NameDasselbe wie unter Ansicht\Optionen…
\Dateitypen im Explorer
  EditFlags00 00 00 00 oder 01 00 00 00Grenzt EditFlags unter Class-Definitions für den jeweiligen Eintrag ein; Beschreibung auch unter Edit-Flags.
 Shell\Open\
Command
StandardBefehlszeileAssoziiertes Programm und Aktion beim Öffnen der Datei
 Shell\Name  Wie unter Open, z.B. Drucken
 Shelley  Hier können sich Programme eintragen, die im Explorer und Desktop integriert sein sollen.

Schlüssel
Unterschlüssel
Name
Wert
Beschreibung
CLSID
Eindeutiger nummerischer Wert
Wie unter Class- Definition

Siehe Inhalt in der Hilfe

Eindeutiger nummerischer Wert\
ShellFolder
Attributes
Binärwert
Attribute für die “GetAttributesOf” Methode, bestimmen die Eigenschaften des Objektes, also auch das Kontextmenü.
Werte siehe unter ShellFolder Attributes.
Directory

“Dateiordner”, Erbe von Folder, alle Möglichkeiten wie für Class-Definitions
Drive

“Laufwerk”, Erbe von Folder
Folder

“Ordner”
Unknown

Aktionen für unbekannte Datei-Typen

EditFlags
Die EditFlags bestimmen die Bearbeitungsmöglichkeiten des jeweiligen Dateityps im Explorer unter Ansicht\Optionen…\Dateitypen. Der Wert selbst ist in 4 Bytes kodiert, von denen aber nur die ersten beiden Bytes einen Effekt haben. Die letzten beiden Bytes sind immer 0. Um die Werte zu kombinieren, muss man die entsprechenden Bits setzen.

Byte
Bit
Hex-Wert des Bits
Bedeutung wenn Bit gesetzt (=1) ist.
1
1
1
Entfernt den Datei-Typ von der Liste der Dateitypen, sofern es sich tatsächlich um eine physikalische Datei handelt
1
2
2
Zeigt den Datei-Typ in der Liste der Dateitypen an, auch wenn es sich nicht um eine Datei, sondern um ein durch seine CLSID repräsentiertes Objekt handelt
1
3
4
Typ ohne assoziierte Extension
1
4
8
“Dateitypen\Bearbeiten…” ist deaktiviert
1
5
10
“Dateitypen\Entfernen” ist deaktiviert
1
6
20
“Dateitypen bearbeiten\(Vorgänge)Neu…” ist deaktiviert
1
7
40
“Dateitypen bearbeiten\(Vorgänge)Bearbeiten…” ist deaktiviert
1
8
80
“Dateitypen bearbeiten\(Vorgänge)Entfernen” ist deaktiviert
2
1
1
“Dateitypen bearbeiten\Beschreibung” ist deaktiviert
2
2
2
“Dateitypen bearbeiten\Anderes Symbol…” ist deaktiviert
2
3
4
“Dateitypen bearbeiten\Als Standard” ist deaktiviert
2
4
8

2
5
10
“Anwendung für diesen Vorgang” kann nicht geändert werden
2
6
20
DDE Einstellungen können nicht verändert werden

Wenn der Vorgang selbst das EditFlag 01 00 00 00 trägt, werden die letzten beiden Einstellungen überschrieben.

ShellFolder Attribute
Attribute für Systemordner, beispielsweise für den Papierkorb. Man sollte an dieser Stelle etwas vorsichtig sein und nur die Eigenschaften setzen, die auch tatsächlich vorhanden sind. Der Explorer scheint zwar alles “zu schlucken”, andere Anwendungen sind aber nicht notwendigerweise genauso genügsam. Das eine bestimmte Eigenschaft hier gesetzt ist, bedeutet ja nicht, dass ein Objekt diese Eigenschaft hat. (Den Papierkorb kann man eben nicht verschieben, jedenfalls nicht so!)

Byte
Bit
Hex-Wert des Bits
Bedeutung, wenn Bit gesetzt (=1) ist.

00 00 00 00
Kein Bit gesetzt: Die Aktion, welche unter dem CLSID Eintrag angegeben ist, ist erlaubt.
1
1
01
Kopieren erlaubt
1
2
02
Verschieben erlaubt
1
3
04
?
1
4
08
?
1
5
10
Umbenennen erlaubt (funktioniert auch mit dem Papierkorb)
1
6
20
Löschen erlaubt. Beim Löschen wird der NameSpace Eintrag entfernt.
1
7
40
HasPropSheet: Hat Eigenschaften
3
1
01
Link: Interpretiert als Shortcut
3
2
02
Share:
3
3
04
ReadOnly:
3
4
08
Ghosted: Kann nicht selektiert werden
4
6
20
Folder: Öffnen und Explorer erscheint im Kontextmenü.

HKEY_CURRENT_CONFIG

Der Hauptschlüssel HKEY_CURRENT_CONFIG ist ein Verweis auf die aktive Konfiguration in HKEY_LOCAL_MACHINE\Config\0001. Durch diesen Verweis auf die momentane Konfiguration hat Windows schnellen Zugriff auf die Konfigurationsinformationen der aktuellen Windows-Sitzung.

HKEY_DYN_DATA: (diesen Schlüssel gibt es nur unter Windows 95/98)
Der Hauptschlüssel, der “dynamische” Konfigurationsinformationen enthält – Daten, die während der Laufzeit von Windows derart oft gelesen und geschrieben werden, dass sie aus Performance-Gründen im Arbeitsspeicher und nicht auf der Festplatte gehalten werden. Der Zweig Config-Manager enthält eine Aufstellung aller installierten Hardwaregeräte, die Schlüssel, um diese zu identifizieren, sowie den aktuellen Status der einzelnen Geräte. PerfStats wird vom Systemmonitor-Applet eingesetzt, um Performance-Messungen vornehmen zu können.

HKEY_LOCAL_MACHINE

Unter dem Schlüssel HKEY_LOCAL_MACHINE legt das Betriebssystem Informationen über den Computer ab. Dazu gehört eine Liste der installierten Hardwares, zugehörige Treiber und deren Einstellungen. Der Unterzweig Config (nur Windows 95/98) enthält eine Liste von Hardwarekonfigurationen. Jedesmal wenn Windows startet, untersucht es die Hardware des PCs und greift dabei – sofern möglich – auf eine passende Konfiguration aus HKEY_LOCAL_MACHINE\Config.
Auf diese Weise kann sich Windows an veränderliche Hardwareumgebungen anpassen, etwa bei portablen PCs mit Dockingstations. Ein weiterer interessanter Punkt ist der Unterschlüssel Enum (nur Windows 95/98). Er enthält alle Geräte, die Windows beim Start im Systembus gefunden hat, u.a. die installierten Laufwerke samt ihrer Kennungen. Informationen über die seriellen Schnittstellen sind in einem separaten Zweig namens Hardware abgelegt. Der Unterschlüssel System enthält Informationen zur Hardwarekonfiguration (installierte Dateisysteme, virtuelle Gerätetreiber). Die Daten sind an dieser Stelle in “Control Sets” angeordnet, wodurch jeder eine komplette Hardwarekonfiguration beschreibt. Der Unterschlüssel System\CurrentControlSet enthält die aktuelle Konfiguration.
Der Unterschlüssel Software enthält globale Softwareeinstellungen für Windows und Applikationen. Win32-Setup-Programme schreiben oft in diesen Bereich der Systemregistrierung, wenn neue Anwendungen installiert werden. Der interessanteste Teil des Unterschlüssels Software ist HKEY_LOCAL_MACHINE\Software\Classes, denn hier stehen die Informationen über Dateinamenserweiterungen und wie diese von der Shell behandelt werden sollen. Diese Einträge werden normalerweise nicht direkt, sondern über HKEY_CLASSES_ROOT angesprochen.
Der Unterschlüssel Security enthält Informationen zur Remote Administration.

HKEY_CURRENT_USER

Der Schlüssel HKEY_CURRENT_USER ist ein Verweis auf den aktuellen HKEY_USERS Profilschlüssel. Wenn Sie HKEY_CURRENT_USER und den Schlüssel des aktuellen Anwenders unter HKEY_USERS öffnen, so werden Sie feststellen, dass ihre Inhalte identisch sind. Mit Verweis ist in diesem Zusammenhang gemeint, dass HKEY_CURRENT_USER ein Schlüssel ist, der auf einen anderen Teil in der Registrierung zeigt. Jede Änderung im aktuellen Anwenderprofil in HKEY_USERS zeigt sich automatisch auch in HKEY_CURRENT_USER.
Zunächst mag die Sache mit dem Verweis überflüssig erscheinen, dennoch gibt es jedoch einen guten Grund dafür. Wenn eine Applikation Ihre privaten Einstellungen in der Registrierung sichert, so lautet der komplette Schlüssel HKEY_CURRENT_USER\Software\FirmenName\ProduktName\Version.
Da HKEY_CURRENT_USER transparent auf den aktuellen Profilunterschlüssel unter HKEY_USERS abgebildet wird, betreffen die zu sichernden Informationen lediglich den momentanen Anwender. Somit ist es unter Windows möglich, dass ein Anwender eine Applikation auf die eine Art und ein anderer auf eine ganz andere Art konfigurieren kann. Jeder bekommt jeweils nur seine Einstellung zu sehen, wenn er das Programm das nächste Mal aufruft. Das setzt freilich voraus, dass die betreffende Applikation auch Gebrauch von der Systemregistrierung macht und sich auch an deren Spielregeln hält. Das gilt jedoch nur für die wenigsten 16-Bit-Programme. Den vollen Nutzen dieser Einrichtung haben Sie also erst dann, wenn Sie vollständig auf 32-Bit-Programme umgestellt haben.

HKEY_USERS

Der Schlüssel HKEY_USERS enthält Informationen zu den Anwendern und deren Einstellungen. Er enthält zumindest einen Unterschlüssel namens .Default, in dem das Standardprofil für die Anwender gespeichert ist, die ohne persönliches Profil arbeiten.
Ein persönliches Profil wird immer dann angelegt, wenn sich ein neuer Anwender anmeldet und dieser wünscht, dass seine persönlichen Einstellungen beibehalten werden sollen. Voraussetzung hierfür ist allerdings die Aktivierung der entsprechenden Option. Öffnen Sie die Systemsteuerung und darin die Einstellungen für Kennwörter. Klicken Sie auf die Registerkarte Benutzerprofile und markieren Sie die Option “Benutzer können Vorgaben ändern”.
Wird anstatt des Standards ein persönliches Profil benutzt, so enthält HKEY_USERS auch einen Unterschlüssel mit dem Profilnamen des betreffenden Anwenders. Eine Liste der gesicherten Profile findet sich in der Registry unter HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ProfileList.
Die Einträge nach “(Standard)” enthalten die Dateipfadnamen auf die Ordner, die die jeweiligen Anwendereinstellungen enthalten. Ein persönliches Profil für die einzelnen Anwender wird während der Laufzeit aus einer PWL-Datei im Windows-Verzeichnis generiert und dort in einem entsprechenden Ordner im Verzeichnis Profile abgelegt – beispielsweise C:\Windows\Profiles\Rudolf.
Die Unterschlüssel enthalten unter anderem AppEvents (für die Klangbelegungen von Bildschirmfarbe und Tastatur) und Netzwerk (für die Speicherung von permanenten und temporären Netzwerkverbindungen).
Der Unterschlüssel Software ist der Ort, an dem die meisten Win32-Programme ihre Sitzungsinformationen ablegen. Unter früheren Versionen von Windows haben Entwickler solche Daten zumeist in WIN.INI oder in privaten INI-Dateien abgelegt.
Für die Entwicklung von Win-95-Applikationen wird den Programmierern dringend empfohlen, solche Daten unter dem Schlüssel Software\Firmenname\Produktname\Version des aktuellen Profils abzulegen. Für Firmenname ist der Name des Entwicklers einzutragen, für Produktname der des Produkts und Version bezieht sich auf die jeweilige Produktversion.
Wenn Sie den Zweig Software\Microsoft erweitern, zeigen sich Unterschlüssel für verschiedene Microsoft-Programme sowie für Windows selbst (Software\Microsoft\Windows). Bei wachsender Zahl von 32-Bit-Applikationen steigt hier auch die Zahl der Einträge.

Datentypen

Hier werden alle möglichen Datentypen aufgelistet, die in der Registry angelegt werden können, über Regedit bzw. Regedt32 können nur einige davon angelegt werden, weshalb bei Anzeigename der Name aufgeführt wird, welcher in diesen Tools benutzt wird.
Über eine REG-Datei können Sie jeden Datentypen erstellen, dafür müssen Sie die Daten bei den nicht Standard-Datentypen als Hexadezimal-Werte angeben:
“name”=hex(): 00 11 22 33
Info: Ersetzen Sie durch die in der Tabelle aufgeführten Nummer.

NR Bezeichnung Anzeige Beschreibung
0 REG_NONE – Daten ohne bestimmten Typ. Diese Daten werden im Registry-Editor im hexadezimalen Format als Binärwert angezeigt.
1 REG_SZ String (Zeichenfolge) Normale Zeichenkette
2 REG_EXPAND_SZ Wert der erweiterbaren Zeichenfolge Zeichenkette mit beliebiger Größe. Hier können auch Variable benutzt werden, deren Werte erst zur Laufzeit eingefügt werden (z.B.: %SYSTEMROOT% oder %USERNAME% usw.).
3 REG_BINARY Binärwert Nur für Binärdaten. Meist Daten für Hardware-Setup-Informationen, die Angabe erfolgt meist hexadezimal.
4 REG_DWORD DWord-Wert (32-Bit) Binärer Datentyp (4 Bytes lang)
5 REG_DWORD_BIG_ENDIAN
REG_DWORD_BIG_ENDIAN: Binärer Datentyp (4 Bytes lang) mit dem niederwertigsten Byte an der höchsten Adresse
DWORD_LITTLE_ENDIAN: Binärer Datentyp (4 Bytes lang) mit dem niederwertigsten Byte an der niedrigsten Adresse
6 REG_LINK Eine Unicode Zeichenfolge, die einen symbolischen Link bezeichnet.
7 REG_MULTI_SZ Wert der mehrteiligen Zeichenfolge Zeichenkette, mehrere Parameter sind möglich. Die einzelnen Parameter sind durch binäre Nullen zu trennen.
8 REG_RESOURCE_LIST
Binärwert. Es handelt sich dabei um eine Serie verschachtelter Arrays zur Speicherung einer Resourcenliste, die von einem Hardwaregerätetreiber oder einem der durch diesen Treiber gesteuerten physischen Geräte verwendet wird. Diese Daten werden vom System erkannt und in die Struktur “\ResourceMap” geschrieben.
Sollten nicht händisch bearbeitet/erstellt werden!
9 REG_FULL_RESOURCE_DESCRIPTOR
Binärwert. Es handelt sich dabei um eine Serie verschachtelter Arrays zur Speicherung von Resourcenlisten, die von einem physischen Hardwaregerät verwendet werden. Diese Daten werden durch das System erkannt und in die Struktur “\HardwareDescription” geschrieben.
Sollten nicht händisch bearbeitet/erstellt werden!
a REG_RESOURCE_REQUIREMENTS_LIST
Binärwert. Es handelt sich dabei um eine Serie verschachtelter Arrays zur Speicherung einer Liste möglicher Hardwareresourcen eines Gerätetreibers. Das System schreibt eine Teilmenge der Liste in die Struktur “\ResourceMap”.
Sollten nicht händisch bearbeitet/erstellt werden!
b REG_QWORD QWord-Wert (64-Bit) Ab Windows 2000
Daten, die durch eine ganze Zahl mit 64-Bit repräsentiert werden. Diese Daten werden als Binärdaten im Registry-Editor angezeigt.

Info: Unter Windows 95/98 gibt es für Zeichenketten nur den einen Datentyp “String”. Ab Windows NT hat Microsoft für Zeichenketten 3 unterschiedliche Datentypen eingeführt.

Siehe auch: Weitere Infos zur Registry