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". BeiNonewird 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
OSErrorausgelöst.Löst ein Auditing-Ereignis
winreg.ConnectRegistrymit den Argumentencomputer_nameundkeyaus.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
Nonesein. 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
OSErrorausgelöst.Löst ein Auditing-Ereignis
winreg.CreateKeymit den Argumentenkey,sub_keyundaccessaus.Löst ein Auditing-Ereignis
winreg.OpenKey/resultmit dem Argumentkeyaus.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
Nonesein. 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
OSErrorausgelöst.Löst ein Auditing-Ereignis
winreg.CreateKeymit den Argumentenkey,sub_keyundaccessaus.Löst ein Auditing-Ereignis
winreg.OpenKey/resultmit dem Argumentkeyaus.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
Nonesein, 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
OSErrorausgelöst.Löst ein Auditing-Ereignis
winreg.DeleteKeymit den Argumentenkey,sub_keyundaccessaus.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
Nonesein, 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
OSErrorausgelöst.Auf nicht unterstützten Windows-Versionen wird
NotImplementedErrorausgelöst.Löst ein Auditing-Ereignis
winreg.DeleteKeymit den Argumentenkey,sub_keyundaccessaus.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
Nonewerden 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.DeleteTreemit den Argumentenkeyundsub_keyaus.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.DeleteValuemit den Argumentenkeyundvalueaus.
- 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
OSErrorausgelöst wird. Damit sind keine weiteren Werte verfügbar.Löst ein Auditing-Ereignis
winreg.EnumKeymit den Argumentenkeyundindexaus.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
OSErrorausgelöst wird. Damit gibt es keine weiteren Werte.Das Ergebnis ist ein Tupel aus drei Elementen:
Index
Bedeutung
0eine Zeichenkette, die den Namen des Werts bezeichnet
1ein Objekt mit den Daten des Werts, dessen Typ sich nach dem zugrundeliegenden Registry-Typ richtet
2eine ganze Zahl, die den Typ der Daten bezeichnet (siehe Tabelle in der Dokumentation zu
SetValueEx())Löst ein Auditing-Ereignis
winreg.EnumValuemit den Argumentenkeyundindexaus.Geändert in Version 3.3: Siehe oben.
- winreg.ExpandEnvironmentStrings(str)¶
Ersetzt Platzhalter für Umgebungsvariablen der Form
%NAME%in Zeichenketten wieREG_EXPAND_SZ:>>> ExpandEnvironmentStrings('%windir%') 'C:\\Windows'
Löst ein Auditing-Ereignis
winreg.ExpandEnvironmentStringsmit dem Argumentstraus.
- 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 alsCloseKey()kehrt die MethodeFlushKey()erst zurück, wenn alle Daten in die Registry geschrieben sind. Eine Anwendung sollteFlushKey()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 KonstantenHKEY_USERSundHKEY_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 PrivilegSE_RESTORE_PRIVILEGEhat. 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.LoadKeymit den Argumentenkey,sub_keyundfile_nameaus.
- 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
OSErrorausgelöst.Löst ein Auditing-Ereignis
winreg.OpenKeymit den Argumentenkey,sub_keyundaccessaus.Löst ein Auditing-Ereignis
winreg.OpenKey/resultmit dem Argumentkeyaus.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
0eine ganze Zahl mit der Anzahl der Unterschlüssel dieses Schlüssels.
1eine ganze Zahl mit der Anzahl der Werte dieses Schlüssels.
2eine 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.QueryInfoKeymit dem Argumentkeyaus.
- 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
Noneoder leer, liefert die Funktion den Wert, den die MethodeSetValue()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
NULList. Der zugrundeliegende API-Aufruf gibt den Typ allerdings nicht zurück. Nimm daher möglichst immerQueryValueEx().Löst ein Auditing-Ereignis
winreg.QueryValuemit den Argumentenkey,sub_keyundvalue_nameaus.
- 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
0der Wert des Registry-Eintrags.
1eine ganze Zahl mit dem Registry-Typ dieses Werts (siehe Tabelle in der Dokumentation zu
SetValueEx())Löst ein Auditing-Ereignis
winreg.QueryValuemit den Argumentenkey,sub_keyundvalue_nameaus.
- 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
NULLfür security_attributes.Löst ein Auditing-Ereignis
winreg.SaveKeymit den Argumentenkeyundfile_nameaus.
- 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_SZsein, es werden also nur Zeichenketten unterstützt. Für andere Datentypen dient die FunktionSetValueEx().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_VALUEgeöffnet worden sein.Löst ein Auditing-Ereignis
winreg.SetValuemit den Argumentenkey,sub_key,typeundvalueaus.
- 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_VALUEgeöffnet worden sein.Zum Öffnen des Schlüssels dienen die Methoden
CreateKey()undOpenKey().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.SetValuemit den Argumentenkey,sub_key,typeundvalueaus.
- 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
NotImplementedErroraus.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.DisableReflectionKeymit dem Argumentkeyaus.
- 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
NotImplementedErroraus.Die Reflexion für einen Schlüssel wiederherzustellen, berührt die Reflexion seiner Unterschlüssel nicht.
Löst ein Auditing-Ereignis
winreg.EnableReflectionKeymit dem Argumentkeyaus.
- 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
Truezurück, wenn die Reflexion abgeschaltet ist.Löst auf einem 32-Bit-Betriebssystem in der Regel
NotImplementedErroraus.Löst ein Auditing-Ereignis
winreg.QueryReflectionKeymit dem Argumentkeyaus.
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_NOTIFYundKEY_CREATE_LINKzusammen.
- winreg.KEY_WRITE¶
Fasst die Zugriffsrechte STANDARD_RIGHTS_WRITE,
KEY_SET_VALUEundKEY_CREATE_SUB_KEYzusammen.
- winreg.KEY_READ¶
Fasst die Werte STANDARD_RIGHTS_READ,
KEY_QUERY_VALUE,KEY_ENUMERATE_SUB_KEYSundKEY_NOTIFYzusammen.
- 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.
- winreg.KEY_CREATE_LINK¶
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_BIG_ENDIAN¶
Eine 32-Bit-Zahl im Big-Endian-Format.
- winreg.REG_EXPAND_SZ¶
Nullterminierte Zeichenkette mit Verweisen auf Umgebungsvariablen (
%PATH%).
- winreg.REG_LINK¶
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.Detachmit dem Argumentkeyaus.
- PyHKEY.__enter__()¶
- PyHKEY.__exit__(*exc_info)¶
Das HKEY-Objekt stellt
__enter__()und__exit__()bereit und unterstützt damit das Kontextprotokoll derwith-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.