winreg — Zugriff auf die Windows-Registry

Quellcode: PC/winreg.c


Diese Funktionen machen die API der Windows-Registry in Python zugänglich. Statt einer ganzen Zahl dient ein Handle-Objekt als Registry-Handle. So ist sichergestellt, dass die Handles richtig geschlossen werden, auch wenn man das Schließen vergisst.

Verfügbarkeit: Windows.

Geändert in Version 3.3: Mehrere Funktionen dieses Moduls lösten früher WindowsError aus, was heute ein anderer Name für OSError ist.

Funktionen

Dieses Modul bietet die folgenden Funktionen:

winreg.CloseKey(hkey)

Schließt einen zuvor geöffneten Registry-Schlüssel. Das Argument hkey gibt einen zuvor geöffneten Schlüssel an.

Bemerkung

Wird hkey nicht mit dieser Methode geschlossen oder über hkey.Close(), geschieht das, sobald Python das Objekt hkey zerstört.

winreg.ConnectRegistry(computer_name, key)

Baut eine Verbindung zu einem vordefinierten Registry-Handle auf einem anderen Rechner auf und gibt ein Handle-Objekt zurück.

computer_name ist der Name des entfernten Rechners in der Form r"\\computername". Bei None wird der lokale Rechner verwendet.

key ist das vordefinierte Handle, zu dem verbunden wird.

Zurückgegeben wird das Handle des geöffneten Schlüssels. Schlägt die Funktion fehl, wird OSError ausgelöst.

Löst ein Auditing-Ereignis winreg.ConnectRegistry mit den Argumenten computer_name und key aus.

Geändert in Version 3.3: Siehe oben.

winreg.CreateKey(key, sub_key)

Erstellt oder öffnet den angegebenen Schlüssel und gibt ein Handle-Objekt zurück.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

sub_key ist eine Zeichenkette, die den Schlüssel benennt, den diese Methode öffnet oder erstellt.

Ist key einer der vordefinierten Schlüssel, darf sub_key None sein. Dann ist das zurückgegebene Handle dasselbe, das der Funktion übergeben wurde.

Ist der Schlüssel schon vorhanden, öffnet diese Funktion den bestehenden Schlüssel.

Zurückgegeben wird das Handle des geöffneten Schlüssels. Schlägt die Funktion fehl, wird OSError ausgelöst.

Löst ein Auditing-Ereignis winreg.CreateKey mit den Argumenten key, sub_key und access aus.

Löst ein Auditing-Ereignis winreg.OpenKey/result mit dem Argument key aus.

Geändert in Version 3.3: Siehe oben.

winreg.CreateKeyEx(key, sub_key, reserved=0, access=KEY_WRITE)

Erstellt oder öffnet den angegebenen Schlüssel und gibt ein Handle-Objekt zurück.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

sub_key ist eine Zeichenkette, die den Schlüssel benennt, den diese Methode öffnet oder erstellt.

reserved ist eine reservierte ganze Zahl und muss null sein. Vorgabe ist null.

access ist eine ganze Zahl, die eine Zugriffsmaske angibt und damit den gewünschten Sicherheitszugriff auf den Schlüssel beschreibt. Vorgabe ist KEY_WRITE. Die anderen erlaubten Werte stehen unter Zugriffsrechte.

Ist key einer der vordefinierten Schlüssel, darf sub_key None sein. Dann ist das zurückgegebene Handle dasselbe, das der Funktion übergeben wurde.

Ist der Schlüssel schon vorhanden, öffnet diese Funktion den bestehenden Schlüssel.

Zurückgegeben wird das Handle des geöffneten Schlüssels. Schlägt die Funktion fehl, wird OSError ausgelöst.

Löst ein Auditing-Ereignis winreg.CreateKey mit den Argumenten key, sub_key und access aus.

Löst ein Auditing-Ereignis winreg.OpenKey/result mit dem Argument key aus.

Added in version 3.2.

Geändert in Version 3.3: Siehe oben.

winreg.DeleteKey(key, sub_key)

Löscht den angegebenen Schlüssel.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

sub_key ist eine Zeichenkette und muss ein Unterschlüssel des Schlüssels sein, den der Parameter key bezeichnet. Dieser Wert darf nicht None sein, und der Schlüssel darf keine Unterschlüssel haben.

Diese Methode kann keine Schlüssel löschen, die Unterschlüssel haben.

Gelingt die Methode, wird der gesamte Schlüssel samt allen Werten entfernt. Schlägt sie fehl, wird OSError ausgelöst.

Löst ein Auditing-Ereignis winreg.DeleteKey mit den Argumenten key, sub_key und access aus.

Geändert in Version 3.3: Siehe oben.

winreg.DeleteKeyEx(key, sub_key, access=KEY_WOW64_64KEY, reserved=0)

Löscht den angegebenen Schlüssel.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

sub_key ist eine Zeichenkette und muss ein Unterschlüssel des Schlüssels sein, den der Parameter key bezeichnet. Dieser Wert darf nicht None sein, und der Schlüssel darf keine Unterschlüssel haben.

reserved ist eine reservierte ganze Zahl und muss null sein. Vorgabe ist null.

access ist eine ganze Zahl, die eine Zugriffsmaske angibt und damit den gewünschten Sicherheitszugriff auf den Schlüssel beschreibt. Vorgabe ist KEY_WOW64_64KEY. Unter 32-Bit-Windows werden die WOW64-Konstanten übergangen. Die anderen erlaubten Werte stehen unter Zugriffsrechte.

Diese Methode kann keine Schlüssel löschen, die Unterschlüssel haben.

Gelingt die Methode, wird der gesamte Schlüssel samt allen Werten entfernt. Schlägt sie fehl, wird OSError ausgelöst.

Auf nicht unterstützten Windows-Versionen wird NotImplementedError ausgelöst.

Löst ein Auditing-Ereignis winreg.DeleteKey mit den Argumenten key, sub_key und access aus.

Added in version 3.2.

Geändert in Version 3.3: Siehe oben.

winreg.DeleteTree(key, sub_key=None)

Löscht den angegebenen Schlüssel sowie rekursiv alle seine Unterschlüssel und Werte.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

sub_key ist eine Zeichenkette, die den zu löschenden Unterschlüssel benennt. Bei None werden alle Unterschlüssel und Werte des angegebenen Schlüssels gelöscht.

Diese Funktion löscht einen Schlüssel und alle seine Nachkommen. Ist sub_key gleich None, werden alle Unterschlüssel und Werte des angegebenen Schlüssels gelöscht.

Löst ein Auditing-Ereignis winreg.DeleteTree mit den Argumenten key und sub_key aus.

Added in version 3.15.

winreg.DeleteValue(key, value)

Entfernt einen benannten Wert aus einem Registry-Schlüssel.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

value ist eine Zeichenkette, die den zu entfernenden Wert bezeichnet.

Löst ein Auditing-Ereignis winreg.DeleteValue mit den Argumenten key und value aus.

winreg.EnumKey(key, index)

Zählt die Unterschlüssel eines geöffneten Registry-Schlüssels auf und gibt eine Zeichenkette zurück.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

index ist eine ganze Zahl, die den Index des abzurufenden Schlüssels bezeichnet.

Die Funktion liefert bei jedem Aufruf den Namen eines Unterschlüssels. Üblicherweise ruft man sie wiederholt auf, bis OSError ausgelöst wird. Damit sind keine weiteren Werte verfügbar.

Löst ein Auditing-Ereignis winreg.EnumKey mit den Argumenten key und index aus.

Geändert in Version 3.3: Siehe oben.

winreg.EnumValue(key, index)

Zählt die Werte eines geöffneten Registry-Schlüssels auf und gibt ein Tupel zurück.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

index ist eine ganze Zahl, die den Index des abzurufenden Werts bezeichnet.

Die Funktion liefert bei jedem Aufruf den Namen eines Unterschlüssels. Üblicherweise ruft man sie wiederholt auf, bis OSError ausgelöst wird. Damit gibt es keine weiteren Werte.

Das Ergebnis ist ein Tupel aus drei Elementen:

Index

Bedeutung

0

eine Zeichenkette, die den Namen des Werts bezeichnet

1

ein Objekt mit den Daten des Werts, dessen Typ sich nach dem zugrundeliegenden Registry-Typ richtet

2

eine ganze Zahl, die den Typ der Daten bezeichnet (siehe Tabelle in der Dokumentation zu SetValueEx())

Löst ein Auditing-Ereignis winreg.EnumValue mit den Argumenten key und index aus.

Geändert in Version 3.3: Siehe oben.

winreg.ExpandEnvironmentStrings(str)

Ersetzt Platzhalter für Umgebungsvariablen der Form %NAME% in Zeichenketten wie REG_EXPAND_SZ:

>>> ExpandEnvironmentStrings('%windir%')
'C:\\Windows'

Löst ein Auditing-Ereignis winreg.ExpandEnvironmentStrings mit dem Argument str aus.

winreg.FlushKey(key)

Schreibt alle Attribute eines Schlüssels in die Registry.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

Um einen Schlüssel zu ändern, muss man FlushKey() nicht aufrufen. Die Registry schreibt Änderungen von sich aus auf die Platte, mit ihrem träge arbeitenden Schreiber, und ebenso beim Herunterfahren des Systems. Anders als CloseKey() kehrt die Methode FlushKey() erst zurück, wenn alle Daten in die Registry geschrieben sind. Eine Anwendung sollte FlushKey() nur dann aufrufen, wenn sie absolute Gewissheit braucht, dass die Änderungen auf der Platte stehen.

Bemerkung

Wenn du nicht weißt, ob ein Aufruf von FlushKey() nötig ist, ist er wahrscheinlich nicht nötig.

winreg.LoadKey(key, sub_key, file_name)

Erstellt einen Unterschlüssel unter dem angegebenen Schlüssel und legt darin die Registrierungsdaten aus einer angegebenen Datei ab.

key ist ein von ConnectRegistry() zurückgegebenes Handle oder eine der Konstanten HKEY_USERS und HKEY_LOCAL_MACHINE.

sub_key ist eine Zeichenkette, die den zu ladenden Unterschlüssel bezeichnet.

file_name ist der Name der Datei, aus der die Registry-Daten geladen werden. Diese Datei muss mit der Funktion SaveKey() erstellt worden sein. Auf dem Dateisystem FAT (File Allocation Table) darf der Dateiname keine Erweiterung haben.

Ein Aufruf von LoadKey() schlägt fehl, wenn der aufrufende Prozess nicht das Privileg SE_RESTORE_PRIVILEGE hat. Beachte, dass Privilegien etwas anderes sind als Berechtigungen; Näheres steht in der RegLoadKey-Dokumentation.

Ist key ein von ConnectRegistry() zurückgegebenes Handle, gilt der in file_name angegebene Pfad relativ zum entfernten Rechner.

Löst ein Auditing-Ereignis winreg.LoadKey mit den Argumenten key, sub_key und file_name aus.

winreg.OpenKey(key, sub_key, reserved=0, access=KEY_READ)
winreg.OpenKeyEx(key, sub_key, reserved=0, access=KEY_READ)

Öffnet den angegebenen Schlüssel und gibt ein Handle-Objekt zurück.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

sub_key ist eine Zeichenkette, die den zu öffnenden Unterschlüssel bezeichnet.

reserved ist eine reservierte ganze Zahl und muss null sein. Vorgabe ist null.

access ist eine ganze Zahl, die eine Zugriffsmaske angibt und damit den gewünschten Sicherheitszugriff auf den Schlüssel beschreibt. Vorgabe ist KEY_READ. Die anderen erlaubten Werte stehen unter Zugriffsrechte.

Das Ergebnis ist ein neues Handle auf den angegebenen Schlüssel.

Schlägt die Funktion fehl, wird OSError ausgelöst.

Löst ein Auditing-Ereignis winreg.OpenKey mit den Argumenten key, sub_key und access aus.

Löst ein Auditing-Ereignis winreg.OpenKey/result mit dem Argument key aus.

Geändert in Version 3.2: Benannte Argumente sind jetzt erlaubt.

Geändert in Version 3.3: Siehe oben.

winreg.QueryInfoKey(key)

Gibt Informationen über einen Schlüssel als Tupel zurück.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

Das Ergebnis ist ein Tupel aus drei Elementen:

Index

Bedeutung

0

eine ganze Zahl mit der Anzahl der Unterschlüssel dieses Schlüssels.

1

eine ganze Zahl mit der Anzahl der Werte dieses Schlüssels.

2

eine ganze Zahl, die angibt, wann der Schlüssel zuletzt geändert wurde, falls verfügbar, in Einheiten von 100 Nanosekunden seit dem 1. Januar 1601.

Löst ein Auditing-Ereignis winreg.QueryInfoKey mit dem Argument key aus.

winreg.QueryValue(key, sub_key)

Liefert den unbenannten Wert eines Schlüssels als Zeichenkette.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

sub_key ist eine Zeichenkette mit dem Namen des Unterschlüssels, zu dem der Wert gehört. Ist dieser Parameter None oder leer, liefert die Funktion den Wert, den die Methode SetValue() für den von key bezeichneten Schlüssel gesetzt hat.

Werte in der Registry haben einen Namen, einen Typ und Daten. Diese Methode liefert die Daten des ersten Werts eines Schlüssels, dessen Name NULL ist. Der zugrundeliegende API-Aufruf gibt den Typ allerdings nicht zurück. Nimm daher möglichst immer QueryValueEx().

Löst ein Auditing-Ereignis winreg.QueryValue mit den Argumenten key, sub_key und value_name aus.

winreg.QueryValueEx(key, value_name)

Liefert Typ und Daten zu einem angegebenen Wertnamen, der zu einem geöffneten Registry-Schlüssel gehört.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

value_name ist eine Zeichenkette, die den abzufragenden Wert angibt.

Das Ergebnis ist ein Tupel aus zwei Elementen:

Index

Bedeutung

0

der Wert des Registry-Eintrags.

1

eine ganze Zahl mit dem Registry-Typ dieses Werts (siehe Tabelle in der Dokumentation zu SetValueEx())

Löst ein Auditing-Ereignis winreg.QueryValue mit den Argumenten key, sub_key und value_name aus.

winreg.SaveKey(key, file_name)

Speichert den angegebenen Schlüssel und alle seine Unterschlüssel in der angegebenen Datei.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

file_name ist der Name der Datei, in der die Registry-Daten gespeichert werden. Diese Datei darf noch nicht vorhanden sein. Hat der Dateiname eine Erweiterung, kann die Methode LoadKey() ihn auf Dateisystemen vom Typ FAT (File Allocation Table) nicht verwenden.

Steht key für einen Schlüssel auf einem entfernten Rechner, gilt der in file_name beschriebene Pfad relativ zu diesem Rechner. Der Aufrufer dieser Methode muss das Sicherheitsprivileg SeBackupPrivilege besitzen. Beachte, dass Privilegien etwas anderes sind als Berechtigungen; Näheres steht in der Dokumentation Conflicts Between User Rights and Permissions.

Diese Funktion übergibt der API NULL für security_attributes.

Löst ein Auditing-Ereignis winreg.SaveKey mit den Argumenten key und file_name aus.

winreg.SetValue(key, sub_key, type, value)

Verknüpft einen Wert mit einem angegebenen Schlüssel.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

sub_key ist eine Zeichenkette, die den Unterschlüssel benennt, mit dem der Wert verknüpft wird.

type ist eine ganze Zahl, die den Typ der Daten angibt. Derzeit muss das REG_SZ sein, es werden also nur Zeichenketten unterstützt. Für andere Datentypen dient die Funktion SetValueEx().

value ist eine Zeichenkette mit dem neuen Wert.

Gibt es den durch den Parameter sub_key angegebenen Schlüssel noch nicht, erstellt die Funktion SetValue ihn.

Die Länge der Werte ist durch den verfügbaren Speicher begrenzt. Lange Werte, über 2048 Byte, sollten als Dateien abgelegt werden, deren Namen in der Registry stehen. Das hilft der Registry, zügig zu arbeiten.

Der durch den Parameter key bezeichnete Schlüssel muss mit Zugriffsrecht KEY_SET_VALUE geöffnet worden sein.

Löst ein Auditing-Ereignis winreg.SetValue mit den Argumenten key, sub_key, type und value aus.

winreg.SetValueEx(key, value_name, reserved, type, value)

Legt Daten im Wertfeld eines geöffneten Registry-Schlüssels ab.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

value_name ist eine Zeichenkette, die den Unterschlüssel benennt, mit dem der Wert verknüpft ist.

reserved kann beliebig sein. Der API wird immer null übergeben.

type ist eine ganze Zahl, die den Typ der Daten angibt. Die verfügbaren Typen stehen unter Werttypen.

value ist eine Zeichenkette mit dem neuen Wert.

Diese Methode kann für den angegebenen Schlüssel auch zusätzliche Wert- und Typangaben setzen. Der durch den Parameter key bezeichnete Schlüssel muss mit Zugriffsrecht KEY_SET_VALUE geöffnet worden sein.

Zum Öffnen des Schlüssels dienen die Methoden CreateKey() und OpenKey().

Die Länge der Werte ist durch den verfügbaren Speicher begrenzt. Lange Werte, über 2048 Byte, sollten als Dateien abgelegt werden, deren Namen in der Registry stehen. Das hilft der Registry, zügig zu arbeiten.

Löst ein Auditing-Ereignis winreg.SetValue mit den Argumenten key, sub_key, type und value aus.

winreg.DisableReflectionKey(key)

Schaltet die Registry-Reflexion für 32-Bit-Prozesse ab, die auf einem 64-Bit-Betriebssystem laufen.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

Löst auf einem 32-Bit-Betriebssystem in der Regel NotImplementedError aus.

Steht der Schlüssel nicht auf der Reflexionsliste, gelingt die Funktion, bleibt aber ohne Wirkung. Die Reflexion für einen Schlüssel abzuschalten, berührt die Reflexion seiner Unterschlüssel nicht.

Löst ein Auditing-Ereignis winreg.DisableReflectionKey mit dem Argument key aus.

winreg.EnableReflectionKey(key)

Stellt die Registry-Reflexion für den angegebenen abgeschalteten Schlüssel wieder her.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

Löst auf einem 32-Bit-Betriebssystem in der Regel NotImplementedError aus.

Die Reflexion für einen Schlüssel wiederherzustellen, berührt die Reflexion seiner Unterschlüssel nicht.

Löst ein Auditing-Ereignis winreg.EnableReflectionKey mit dem Argument key aus.

winreg.QueryReflectionKey(key)

Ermittelt den Reflexionszustand des angegebenen Schlüssels.

key ist ein schon geöffneter Schlüssel oder eine der vordefinierten HKEY_*-Konstanten.

Gibt True zurück, wenn die Reflexion abgeschaltet ist.

Löst auf einem 32-Bit-Betriebssystem in der Regel NotImplementedError aus.

Löst ein Auditing-Ereignis winreg.QueryReflectionKey mit dem Argument key aus.

Konstanten

Die folgenden Konstanten sind für die Verwendung in vielen Funktionen von winreg definiert.

HKEY_*-Konstanten

winreg.HKEY_CLASSES_ROOT

Die Registry-Einträge unter diesem Schlüssel legen Typen bzw. Klassen von Dokumenten und die zugehörigen Eigenschaften fest. Shell- und COM-Anwendungen nutzen die Informationen unter diesem Schlüssel.

winreg.HKEY_CURRENT_USER

Die Registry-Einträge unter diesem Schlüssel legen die Einstellungen des aktuellen Benutzers fest. Dazu gehören die Werte von Umgebungsvariablen, Daten über Programmgruppen, Farben, Drucker, Netzwerkverbindungen und Anwendungseinstellungen.

winreg.HKEY_LOCAL_MACHINE

Die Registry-Einträge unter diesem Schlüssel legen den physischen Zustand des Rechners fest, darunter Daten über den Bustyp, den Systemspeicher sowie die installierte Hard- und Software.

winreg.HKEY_USERS

Die Registry-Einträge unter diesem Schlüssel legen die Standardkonfiguration für neue Benutzer auf dem lokalen Rechner sowie die Konfiguration des aktuellen Benutzers fest.

winreg.HKEY_PERFORMANCE_DATA

Über die Registry-Einträge unter diesem Schlüssel kommst du an Leistungsdaten. Diese Daten liegen gar nicht in der Registry; die Registry-Funktionen veranlassen das System, sie an ihrer Quelle zu erheben.

winreg.HKEY_CURRENT_CONFIG

Enthält Informationen über das aktuelle Hardwareprofil des lokalen Rechnersystems.

winreg.HKEY_DYN_DATA

Dieser Schlüssel wird in Windows-Versionen nach 98 nicht mehr verwendet.

Zugriffsrechte

Näheres steht unter Registry Key Security and Access.

winreg.KEY_ALL_ACCESS

Fasst die Zugriffsrechte STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY und KEY_CREATE_LINK zusammen.

winreg.KEY_WRITE

Fasst die Zugriffsrechte STANDARD_RIGHTS_WRITE, KEY_SET_VALUE und KEY_CREATE_SUB_KEY zusammen.

winreg.KEY_READ

Fasst die Werte STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS und KEY_NOTIFY zusammen.

winreg.KEY_EXECUTE

Entspricht KEY_READ.

winreg.KEY_QUERY_VALUE

Nötig, um die Werte eines Registry-Schlüssels abzufragen.

winreg.KEY_SET_VALUE

Nötig, um einen Registry-Wert zu erstellen, zu löschen oder zu setzen.

winreg.KEY_CREATE_SUB_KEY

Nötig, um einen Unterschlüssel eines Registry-Schlüssels zu erstellen.

winreg.KEY_ENUMERATE_SUB_KEYS

Nötig, um die Unterschlüssel eines Registry-Schlüssels aufzuzählen.

winreg.KEY_NOTIFY

Nötig, um Benachrichtigungen über Änderungen an einem Registry-Schlüssel oder an seinen Unterschlüsseln anzufordern.

Für die Verwendung durch das System reserviert.

Besonderheiten für 64 Bit

Näheres steht unter Accessing an Alternate Registry View.

winreg.KEY_WOW64_64KEY

Zeigt an, dass eine Anwendung unter 64-Bit-Windows auf der 64-Bit-Sicht der Registry arbeiten soll. Unter 32-Bit-Windows wird diese Konstante übergangen.

winreg.KEY_WOW64_32KEY

Zeigt an, dass eine Anwendung unter 64-Bit-Windows auf der 32-Bit-Sicht der Registry arbeiten soll. Unter 32-Bit-Windows wird diese Konstante übergangen.

Werttypen

Näheres steht unter Registry Value Types.

winreg.REG_BINARY

Binärdaten in beliebiger Form.

winreg.REG_DWORD

32-Bit-Zahl.

winreg.REG_DWORD_LITTLE_ENDIAN

Eine 32-Bit-Zahl im Little-Endian-Format. Entspricht REG_DWORD.

winreg.REG_DWORD_BIG_ENDIAN

Eine 32-Bit-Zahl im Big-Endian-Format.

winreg.REG_EXPAND_SZ

Nullterminierte Zeichenkette mit Verweisen auf Umgebungsvariablen (%PATH%).

Ein symbolischer Unicode-Verweis.

winreg.REG_MULTI_SZ

Eine Folge nullterminierter Zeichenketten, abgeschlossen durch zwei Nullzeichen. Python kümmert sich von selbst um diesen Abschluss.

winreg.REG_NONE

Kein festgelegter Werttyp.

winreg.REG_QWORD

Eine 64-Bit-Zahl.

Added in version 3.6.

winreg.REG_QWORD_LITTLE_ENDIAN

Eine 64-Bit-Zahl im Little-Endian-Format. Entspricht REG_QWORD.

Added in version 3.6.

winreg.REG_RESOURCE_LIST

Eine Ressourcenliste eines Gerätetreibers.

winreg.REG_FULL_RESOURCE_DESCRIPTOR

Eine Hardwareeinstellung.

winreg.REG_RESOURCE_REQUIREMENTS_LIST

Eine Hardware-Ressourcenliste.

winreg.REG_SZ

Eine nullterminierte Zeichenkette.

Registry-Handle-Objekte

Dieses Objekt umhüllt ein Windows-HKEY-Objekt und schließt es von selbst, sobald das Objekt zerstört wird. Um das Aufräumen zu garantieren, kannst du die Methode Close() des Objekts oder die Funktion CloseKey() aufrufen.

Alle Registry-Funktionen dieses Moduls geben ein solches Objekt zurück.

Alle Registry-Funktionen dieses Moduls, die ein Handle-Objekt annehmen, nehmen auch eine ganze Zahl an. Empfohlen ist aber das Handle-Objekt.

Handle-Objekte bringen eine Bedeutung für __bool__() mit, also

if handle:
    print("Yes")

gibt Yes aus, wenn das Handle gerade gültig ist, also nicht geschlossen oder abgelöst wurde.

Das Objekt unterstützt auch den Vergleich auf Gleichheit. Zwei Handle-Objekte gelten als gleich, wenn sie auf denselben zugrundeliegenden Windows-Handle-Wert verweisen. Geschlossene Handle-Objekte, also solche mit dem Handle-Wert null, gelten immer als gleich.

Handle-Objekte lassen sich in eine ganze Zahl umwandeln, etwa mit der eingebauten Funktion int(). Zurückgegeben wird dann der zugrundeliegende Windows-Handle-Wert. Mit der Methode Detach() erhältst du das Handle ebenfalls als ganze Zahl und löst zugleich das Windows-Handle vom Handle-Objekt.

PyHKEY.Close()

Schließt das zugrundeliegende Windows-Handle.

Ist das Handle schon geschlossen, wird kein Fehler ausgelöst.

PyHKEY.Detach()

Löst das Windows-Handle vom Handle-Objekt.

Das Ergebnis ist eine ganze Zahl mit dem Wert des Handles vor dem Ablösen. Ist das Handle schon abgelöst oder geschlossen, kommt null zurück.

Nach dem Aufruf dieser Funktion ist das Handle praktisch ungültig, aber nicht geschlossen. Du rufst sie auf, wenn das zugrundeliegende Win32-Handle über die Lebensdauer des Handle-Objekts hinaus bestehen soll.

Löst ein Auditing-Ereignis winreg.PyHKEY.Detach mit dem Argument key aus.

PyHKEY.__enter__()
PyHKEY.__exit__(*exc_info)

Das HKEY-Objekt stellt __enter__() und __exit__() bereit und unterstützt damit das Kontextprotokoll der with-Anweisung:

with OpenKey(HKEY_LOCAL_MACHINE, "foo") as key:
    ...  # work with key

schließt key von selbst, sobald der Ablauf den with-Block verlässt.

Geändert in Version 3.15: Handle-Objekte werden beim Vergleich auf Gleichheit jetzt über ihren zugrundeliegenden Windows-Handle-Wert verglichen, nicht mehr über die Objektidentität.