Windows-Registrierung: Dateizuordnungen
Wenn man auf eine Datei doppelklickt, öffnet Windows diese Datei mit dem entsprechendem Programm. Damit Windows aber auch weiß, was es zu tun hat, benutzt es die Windows-Registrierungsdatenbank, in der alle dem Betriebssystem bekannten Dateizuordnungen gespeichert sind.
Die Dateizuordnungen sind im Schlüssel HKEY_CLASSES_ROOT
zu finden. Dateizuordnungen bestehen aus zwei Teilen - einmal der Dateiendung selber, und dann einmal den zugehörigen Dateityp. Diese Zweiteilung hat den Sinn, dass man mehrere Dateiendungen mit einem Typ verknüpfen kann; so kann man beispielsweise die Endungen .jpg, .jpeg und .jpe alle dem Dateityp jpegfile zuweisen und alle dasselbe Symbol benutzen lassen.
Der erste Teil besteht, wie bereits erwähnt, aus der Dateiendung. Diese wird in einem Schlüssel registriert, der so heißt wie die Endung. In folgendem Text nehmen wir als Beispiel ein einfaches Bitmap mit der Dateiendung .bmp. Dieses hat in der Registrierung einen Eintrag unter HKEY_CLASSES_ROOT\.bmp
. Der vorhandene Eintrag (Standard) hat als Wert den der Dateiendung zugehörigen Dateityp, der Name des Dateityps ist dabei beliebig. Standardmäßig und in unserem Beispiel lautet der Dateityp Paint.Picture.
Der Dateityp ist ebenfalls unter HKEY_CLASSES_ROOT zu finden, in unserem Beispiel wäre das HKEY_CLASSES_ROOT\Paint.Picture
. Der vorhandene Eintrag (Standard) enthält hier den Namen des Dateityps, wie er im Windows-Explorer erscheint. Daneben sind hier aber auch andere Optionen möglich, indem man neue Schlüssel erstellt:
Windows-Registrierung | |||
---|---|---|---|
Name | Typ | Standardwert | Beschreibung |
NeverShowExt | REG_SZ | (leer) | Existiert dieser Eintrag, wird die Dateiendung nicht angezeigt, selbst dann, wenn "Erweiterungen bei bekannten Dateitypen ausblenden" deaktiviert ist. |
AlwaysShowExt | REG_SZ | (leer) | Existiert dieser Eintrag, wird die Dateiendung immer angezeigt, selbst dann, wenn "Erweiterungen bei bekannten Dateitypen ausblenden" aktiviert ist. |
IsShortcut | REG_SZ | (leer) | Existiert dieser Eintrag, erscheint das Shortcut-Symbol über dem normalen Symbol einer Datei dieses Typs. |
EditFlags | REG_BINARY | 00 00 00 00 | Steuert das Verhalten dieses Dateityps in den Ordneroptionen und im Internet Explorer (siehe unten) |
EditFlags erlaubt mehrere Optionen durch das Setzen von Binärwerten. Diese steuern nicht nur, wie sich dieser Dateityp in den Ordneroptionen im Windows-Explorer verhält, sondern auch das Verhalten des Internet Explorers beim Herunterladen einer Datei dieses Dateityps. Wenn mehrere der angegebenen Einstellungen gelten sollen, werden die hexadezimalen Zahlen addiert, was zum Beispiel mit dem Windows-Taschenrechner möglich ist.
Für das erste Byte sind folgende Einstellungen möglich.
Binärwerte | |||
---|---|---|---|
Binär | Hexadezimal | Beschreibung | |
00000001 | 01 | Dieser Dateityp erscheint nicht in der Liste der Dateitypen in den Ordneroptionen. | |
00000010 | 02 | Dieser Dateityp erscheint in der Liste der Dateitypen, obwohl keine Dateiendung ihm zugehörig ist (in diesem Fall erscheint der Dateityp am Anfang mit der Endung (KEINE)) | |
00000100 | 04 | Dieser Dateityp hat eine Dateiendung (wird nur in seltenen Fällen benötigt) | |
00001000 | 08 | Die Einstellungen für diesen Dateityp können nicht bearbeitet werden. | |
00010000 | 10 | Dieser Dateityp kann nicht aus der Liste der Dateitypen gelöscht werden. | |
00100000 | 20 | Es können keine neuen Aktionen für diesen Dateityp hinzugefügt werden. | |
01000000 | 40 | Die Aktionen für diesen Dateityp können nicht bearbeitet werden. | |
10000000 | 80 | Die Aktionen für diesen Dateityp können nicht entfernt werden. |
Für das zweite Byte sind folgende Einstellungen möglich:
Binärwerte | |||
---|---|---|---|
Binär | Hexadezimal | Beschreibung | |
00000001 | 01 | Der Name des Dateityps kann nicht geändert werden. | |
00000010 | 02 | Das Symbol für diesen Dateityp kann nicht geändert werden. | |
00000100 | 04 | Es kann keine neue Standardaktion für diesen Dateityp ausgewählt werden. | |
00001000 | 08 | Der Name eines Vorgangs kann nicht geändert werden. | |
00010000 | 10 | Der mit einem Vorgang assoziierte Befehl kann nicht geändert werden. | |
00100000 | 20 | Die Option "DDE verwenden" ist deaktiviert. | |
01000000 | 40 | reserviert | |
10000000 | 80 | Der MIME-Typ und die Standarderweiterung können nicht geändert werden. |
Für das dritte Byte sind folgende Einstellungen möglich:
Binärwerte | |||
---|---|---|---|
Binär | Hexadezimal | Beschreibung | |
00000001 | 01 | Wird eine Datei dieses Typs mit dem Internet Explorer aufgerufen, wird nicht gefragt, ob die Datei heruntergeladen werden soll - sie wird automatisch geöffnet. | |
00000010 | 02 | Es wird immer gefragt, ob diese Datei geöffnet werden soll. | |
00000100 | 04 | Die Dateiendung von Dateien diesen Typs wird immer angezeigt, selbst dann, wenn "Erweiterungen bei bekannten Dateitypen ausblenden" aktiviert ist. | |
00001000 | 08 | reserviert | |
00010000 | 10 | Dateien diesen Typs erscheinen nicht in den zuletzt geöffneten Dokumenten. | |
00100000 | 20 | reserviert | |
01000000 | 40 | reserviert | |
10000000 | 80 | reserviert |
Das vierte Byte ist komplett reserviert.
Weitere Optionen sind in Unterschlüsseln enthalten. Der Schlüssel DefaultIcon enthält unter dem Wert (Standard) das Symbol für diesen Dateityp. Es kann sich dabei entweder um eine eigenständige .ICO-Datei, oder um ein in einer .EXE- oder .DLL-Datei enthaltenes Symbol handeln. Diese Icons lassen sich über die Windows-Benutzeroberfläche finden, indem man die Eigenschaften einer beliebigen Verknüpfung aufruft und dann „Anderes Symbol“ anwählt. Allerdings sollte man beachten, dass Windows von Null anfängt zu zählen, will man also z. B. das zweite Symbol von EXPLORER.EXE benutzen, lautet der Befehl EXPLORER.EXE,1
.
Im Unterschlüssel shell wird festgelegt, was Windows mit dieser Datei zu tun hat. Unter shell kann man mehrere Unterschlüssel erstellen, die dann als Befehle im Kontextmenü erscheinen, z. B. open für das Öffnen einer Datei. Unter solch einem Schlüssel muss dann noch ein weiterer Schlüssel command angelegt werden, der gesamte Pfad wäre also HKEY_CLASSES_ROOT\Paint.Picture\shell\open\command
. Der dortige Wert (Standard) enthält dann den Befehl, der ausgeführt werden soll, wenn "Öffnen" im Kontextmenü ausgewählt wird. In unserem Beispiel wäre das mspaint.exe "%1"
, wobei %1 für die zu öffnende Datei steht.
Neben diesen Zuordnungen kennt Windows noch einige Sonderfälle:
HKEY_CLASSES_ROOT\*
enthält Einstellungen für sämtliche Dateien und Ordner.HKEY_CLASSES_ROOT\Drive
enthält Einstellungen für alle Laufwerke.HKEY_CLASSES_ROOT\Folder
enthält Einstellungen für alle Ordner.HKEY_CLASSES_ROOT\Unknown
enthält Einstellungen für Dateien mit einer dem System unbekannten Endung.