Aufbau der Registierdatenbank

generate/allebs.gif


generate/regedit.gif

 

Windows speichert Informationen ⁿber die Konfiguration in einer binΣren, hierarchisch organisierten Datenbank.

 

Aufbau:

HKEY_CLASSES_ROOT

HKEY_CURRENT_CONFIG

HKEY_LOCAL_MACHINE

HKEY_CURRENT_USER

HKEY_USERS

 

zusΣtzlich unter Regedit.exe noch als Zweig zu sehen:

HKEY_DYN_DATA (diesen Schlⁿssel gibt es nur unter Win95/98)

 

Diese Unterteilungen sind nun in weitere Unterschlⁿssel eingeteilt (wie die INI.-Dateien in Sektionen [386enh], [boot], [network] usw.). Bei der Registrierungsdatei ist die Aufteilung aber viel genauer.

Jeder Schlⁿssel kann weitere Unterschlⁿssel und (im rechten Fenster) WerteintrΣge enthalten. Diese WerteintrΣge setzen sich aus drei Teilen zusammen: "Name", "Datentyp" und einem zugewiesenen "Wert". Windows NT kennt standardmΣ▀ig fⁿnf Datentypen, Windows 95/98 nur 3. Es besteht aber die M÷glichkeit, jederzeit benutzerdefinierte Datentypen hinzuzufⁿgen.

 

Einige EintrΣge in der Registry werden Sie doppelt vorfinden. Eine ─nderung wirkt sich aber immer auf beide aus, da es sich bei dem zweiten nur um eine Verknⁿpfung handelt.

Des weiteren ist es m÷glich, dass Sie widersprⁿchliche Angaben finden, in diesen Fall haben immer die USER-spezifischen Einstellung Vorrang (also HKEY_CURRENT_USER hat Vorrang zu den Einstellungen unter HKEY_LOCAL_MACHINE)

 

generate/hand.gif    Bei der Bearbeitung der Registrierdatenbank 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\Sofware\Classes. Durchlaufen Sie HKEY_CLASSES_ROOT, und Sie werden 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 Extansions: Erweiterungen des Kontextmenⁿs und der Registerkarte fⁿr die Einstellungen sowie weitere Plug-in-Softwarekomponenten, die von der Win95-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 drauf und wΣhlen "╓ffnen" aus dem Kontextmenⁿ; 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 (Win95-Paintbrush) zusammen mit dem Dateinamen zu starten ist. 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).

Mit dem Registrierungseditor 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, das dann PKUNZIP aufruft, so fⁿhren Sie folgende Schritte aus:

  1. Erstellen Sie unter HKEY_CLASSES_ROOT einen Unterschlⁿssel namens .ZIP, und setzen Sie seinen Standardwert auf ZIPFILE

  2. Erstellen Sie unter HKEY_CLASSES_ROOT 3 aufeinanderfolgende Unterschlⁿssel mit folgenden Namen Zipfile\Shell\Unzip, und setzen Sie seinen Standardwert auf &Unzip (das Et-Zeichen bezeichnet dabei die Shortcut-Taste [U]).

  3. Fⁿgen Sie HKEY_CLASSES_ROOT\Zipfile\Shell\Unzip einen Kommandounterschlⁿssel hinzu, und setzen Sie dessen Standardwert auf das Kommando, das PKUNZIP zusammen mit dem Dateinamen startet - beispielsweise C:\DOSUTIL\PKUNZIP %1. Jetzt k÷nnen Sie die ZIP-Datei einfach dadurch auspacken, indem Sie mit der rechten Maustaste anklicken und die entsprechende Option aus dem Kontextmenⁿ wΣhlen.

  4.  

 

HKEY_CLASSES_ROOT (HKEY_LOCAL_MACHINE\Software\Classes)

 

Schlⁿssel

Unterschlⁿssel

Name

Wert

Beschreibung

*

 

 

 

Gⁿltig fⁿr alle Dateitypen

 

QuickView

Standard

*

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ⁿssel

Unterschlⁿssel

Name

Wert

Beschreibung

.EXT

 

Standard

Class-

Definition

Zeigt auf die Class-Definition. Dieser Name kann nach Belieben gewΣhlt werden, normalerweise Extfile

 

ShellNew

Standard

nicht gesetzt

Fⁿgt Neu\Datei ins Kontexmenⁿ ein

 

 

NullFile

nicht gesetzt

Neue Datei ohne Vorlage

 

 

FileName

Datei Name

Neue Datei nach Vorlage, diese befindet sich (normalerweise) in ShellNew

 

 

Command

Befehlszeile

╓ffnet die Datei im Anschlu▀ an ihr Erstellen.

 

Schlⁿssel

Unterschlⁿssel

Name

Wert

Beschreibung

Class- Definition

 

Standard

Name

Dieser Name erscheint unter Ansicht\Optionen...

\Dateitypen im Explorer

 

 

EditFlags

BinΣrwert

4 Bytes enthaltender BinΣrwert. Beschreibung siehe dort.

 

 

NeverShowExt

nicht gesetzt

Zeichenfolge, die Endung wird im Explorer nicht angezeigt, auch wenn "Keine MS-DOS-Erweiterungen fⁿr registrierte Dateien" nicht markiert ist.

 

 

AlwaysShowExt

nicht gesetzt

Zeichenfolge, die Endung wird im Explorer immer angezeigt, auch wenn "Keine MS-DOS-Erweiterungen fⁿr registrierte Dateien" markiert ist.

 

 

IsShortcut

nicht gesetzt

Zeichenfolge, Shortcut-Icon Overlay wird angezeigt.

 

QuickView

Standard

*

 

 

DefaultIcon

Standard

%1 oder

DateiName,#

Gibt das Icon an. Fⁿr # ist die entsprechende Nummer anzugeben.

 

Shell

Standard

nicht gesetzt oder Name eines Unter- schlⁿssels

Gibt die Standard Action an (auf Doppelklick), wenn der Wert nicht gesetzt ist, ist Open die Standard Aktion.

 

Shell\Open

Standard

nicht gesetzt oder Benutzer- definierter Name

Dasselbe wie unter Ansicht\Optionen...

\Dateitypen im Explorer.

 

 

 

EditFlags

00 00 00 00

oder

01 00 00 00

Grenzt EditFlags unter Class-Definitions fⁿr den jeweiligen Eintrag ein. Beschreibung auch unter Edit-Flags

 

Shell\Open\

Command

Standard

Befehlszeile

Assoziiertes Programm und Aktion beim ╓ffnen der Datei.

 

Shell\Name

 

 

Wie unter Open, z.b. Drucken

 

Shellex

 

 

Hier k÷nnen sich Programme eintragen, die im Explorer und Desktop integriert sein sollen.

 

Schlⁿssel

Unterschlⁿssel

Name

Wert

Beschreibung

CLSID

Eindeutiger numerischer Wert

Wie unter Class- Definition

 

Siehe im Hilfe Inhalt.

 

Eindeutiger numerischer 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 Dateitypes im Explorer, unter Ansicht\Optionen...\Dateitypen. Der Wert 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 halt die entsprechenden Bytes setzen.

 

Byte

Bit

Hex-Wert des Bytes

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 DateiTyp in der Liste der Dateitypen an, auch wenn es sich gar nicht um eine Datei, sondern um ein durch seine CLSID representiertes 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 den 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 Bytes

Bedeutung wenn Bit gesetzt (=1) ist.

 

 

00 00 00 00

Kein Bit gesetzt: Die Aktion welche unter dem CLSID Eintrag angegeben ist ist erlaubt. Shortcut auf das Objekt erzeugen 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 dann 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 Win95/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 Betriebsystem Informationen ⁿber den Computer ab. Dazu geh÷rt eine Liste der installierten Hardware, zugeh÷riger Treiber und deren Einstellungen. Der Unterzweig Config (nur Win 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 Win 95/98). Er enthΣlt alle GerΣte, die Windows beim Start im Systembus gefunden hat, unter anderem die installierten Laufwerke samt ihrer Kennung. 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-Setupprogramme schreiben oft in diesen Bereich der Systemregistrierung, wenn neue Anwendungen installiert werden. Der interessanteste Teil des Unterschlⁿssels Software ist HKEY_LOACAL_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 Verzeichnis auf den aktuellen HKEY_CURRENT_USERS-Profilschlⁿssel. Wenn Sie HKEY_CURRENT_USER und den Schlⁿssel bezⁿglich 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, es gibt 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 Profliunterschlⁿssel unter HKEY_USERS abgebildet wird, betreffen die zu sichernden Informationen lediglich den momentanen Anwender. Somit ist es unter Windows 95 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 Mals 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 Profilenamen des betreffenden Anwenders. Eine Liste der gesicherten Profile findet sich in der Registry unter HKEY_LOCAL_MACHINE\Software\Mircrosft\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 eine PWL-Datei in 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 wie 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 Programmieren 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

 

NT und Windows 2000 (Bezeichnung in Regedt32)

Win95/98 (Bezeichnung in Regedit)

Info

REG_BINARY

Binary

Nur fⁿr BinΣrdaten. Meist Daten fⁿr Hardware-Setup-Informationen, die Angabe erfolgt meist Hexadeximal

REG_DWORD

DWord

BinΣrer Datentyp (4-Bytes lang)

REG_EXPAND_SZ

String

Zeichenkette mit beliebiger Gr÷▀e. Hier k÷nnen auch Variablen benutzt werden, wo die Werte erst zur Laufzeit eingefⁿgt werden (z.B.: %SYSTEMROOT% oder %USERNAME% usw.)

REG_MULTI_SZ

String

Zeichenkette, wo mehrere Parameter angegeben werden k÷nnen. Die einzelnen Parameter sind durch binΣre Nullen zu trennen

REG_SZ

String

Zeichenkette

 

generate/hand.gif    Unter Windows 95/98 gibt es wie man sieht fⁿr Zeichenketten nur den einen Datentyp "String". Unter NT und 2000 hat MS fⁿr Zeichenkette 3 unterschiedliche Datentypen eingefⁿhrt.

  

generate/hand.gif    Siehe auch: Weitere Infos zur Registry

 



d:\programm\forehelp\htmlgifs\home.gif Achtung: Was sollte man beachten Weitere Infos zur Registry

 


 

Copyright ⌐ 1996/2000 by Frank Ullrich

http://www.winfaq.de