💥 TRENDING: /library/winreg.html - Complete Album!
winreg — Windows registry access¶
These functions expose the Windows registry API to Python. Instead of using an integer as the registry handle, a handle object is used to ensure that the handles are closed correctly, even if the programmer neglects to explicitly close them.
Availability: Windows.
Changed in version 3.3: Several functions in this module used to raise a
WindowsError, which is now an alias of OSError.
Functions¶
This module offers the following functions:
- winreg.CloseKey(hkey)¶
Closes a previously opened registry key. The hkey argument specifies a previously opened key.
Note
If hkey is not closed using this method (or via
hkey.Close()), it is closed when the hkey object is destroyed by Python.
- winreg.ConnectRegistry(computer_name, key)¶
Establishes a connection to a predefined registry handle on another computer, and returns a handle object.
computer_name is the name of the remote computer, of the form
r"\\computername". IfNone, the local computer is used.key is the predefined handle to connect to.
The return value is the handle of the opened key. If the function fails, an
OSErrorexception is raised.Raises an auditing event
winreg.ConnectRegistrywith argumentscomputer_name,key.Changed in version 3.3: See above.
- winreg.CreateKey(key, sub_key)¶
Creates or opens the specified key, returning a handle object.
key is an already open key, or one of the predefined HKEY_* constants.
sub_key is a string that names the key this method opens or creates.
If key is one of the predefined keys, sub_key may be
None. In that case, the handle returned is the same key handle passed in to the function.If the key already exists, this function opens the existing key.
The return value is the handle of the opened key. If the function fails, an
OSErrorexception is raised.Raises an auditing event
winreg.CreateKeywith argumentskey,sub_key,access.Raises an auditing event
winreg.OpenKey/resultwith argumentkey.Changed in version 3.3: See above.
- winreg.CreateKeyEx(key, sub_key, reserved=0, access=KEY_WRITE)¶
Creates or opens the specified key, returning a handle object.
key is an already open key, or one of the predefined HKEY_* constants.
sub_key is a string that names the key this method opens or creates.
reserved is a reserved integer, and must be zero. The default is zero.
access is an integer that specifies an access mask that describes the desired security access for the key. Default is
KEY_WRITE. See Access Rights for other allowed values.If key is one of the predefined keys, sub_key may be
None. In that case, the handle returned is the same key handle passed in to the function.If the key already exists, this function opens the existing key.
The return value is the handle of the opened key. If the function fails, an
OSErrorexception is raised.Raises an auditing event
winreg.CreateKeywith argumentskey,sub_key,access.Raises an auditing event
winreg.OpenKey/resultwith argumentkey.Added in version 3.2.
Changed in version 3.3: See above.
- winreg.DeleteKey(key, sub_key)¶
Deletes the specified key.
key is an already open key, or one of the predefined HKEY_* constants.
sub_key is a string that must be a subkey of the key identified by the key parameter. This value must not be
None, and the key may not have subkeys.This method can not delete keys with subkeys.
If the method succeeds, the entire key, including all of its values, is removed. If the method fails, an
OSErrorexception is raised.Raises an auditing event
winreg.DeleteKeywith argumentskey,sub_key,access.Changed in version 3.3: See above.
- winreg.DeleteKeyEx(key, sub_key, access=KEY_WOW64_64KEY, reserved=0)¶
Deletes the specified key.
key is an already open key, or one of the predefined HKEY_* constants.
sub_key is a string that must be a subkey of the key identified by the key parameter. This value must not be
None, and the key may not have subkeys.reserved is a reserved integer, and must be zero. The default is zero.
access is an integer that specifies an access mask that describes the desired security access for the key. Default is
KEY_WOW64_64KEY. On 32-bit Windows, the WOW64 constants are ignored. See Access Rights for other allowed values.This method can not delete keys with subkeys.
If the method succeeds, the entire key, including all of its values, is removed. If the method fails, an
OSErrorexception is raised.On unsupported Windows versions,
NotImplementedErroris raised.Raises an auditing event
winreg.DeleteKeywith argumentskey,sub_key,access.Added in version 3.2.
Changed in version 3.3: See above.
- winreg.DeleteValue(key, value)¶
Removes a named value from a registry key.
key is an already open key, or one of the predefined HKEY_* constants.
value is a string that identifies the value to remove.
Raises an auditing event
winreg.DeleteValuewith argumentskey,value.
- winreg.EnumKey(key, index)¶
Enumerates subkeys of an open registry key, returning a string.
key is an already open key, or one of the predefined HKEY_* constants.
index is an integer that identifies the index of the key to retrieve.
The function retrieves the name of one subkey each time it is called. It is typically called repeatedly until an
OSErrorexception is raised, indicating, no more values are available.Raises an auditing event
winreg.EnumKeywith argumentskey,index.Changed in version 3.3: See above.
- winreg.EnumValue(key, index)¶
Enumerates values of an open registry key, returning a tuple.
key is an already open key, or one of the predefined HKEY_* constants.
index is an integer that identifies the index of the value to retrieve.
The function retrieves the name of one subkey each time it is called. It is typically called repeatedly, until an
OSErrorexception is raised, indicating no more values.The result is a tuple of 3 items:
Index
Meaning
0A string that identifies the value name
1An object that holds the value data, and whose type depends on the underlying registry type
2An integer that identifies the type of the value data (see table in docs for
SetValueEx())Raises an auditing event
winreg.EnumValuewith argumentskey,index.Changed in version 3.3: See above.
- winreg.ExpandEnvironmentStrings(str)¶
Expands environment variable placeholders
%NAME%in strings likeREG_EXPAND_SZ:>>> ExpandEnvironmentStrings('%windir%') 'C:\\Windows'
Raises an auditing event
winreg.ExpandEnvironmentStringswith argumentstr.
- winreg.FlushKey(key)¶
Writes all the attributes of a key to the registry.
key is an already open key, or one of the predefined HKEY_* constants.
It is not necessary to call
FlushKey()to change a key. Registry changes are flushed to disk by the registry using its lazy flusher. Registry changes are also flushed to disk at system shutdown. UnlikeCloseKey(), theFlushKey()method returns only when all the data has been written to the registry. An application should only callFlushKey()if it requires absolute certainty that registry changes are on disk.Note
If you don’t know whether a
FlushKey()call is required, it probably isn’t.
- winreg.LoadKey(key, sub_key, file_name)¶
Creates a subkey under the specified key and stores registration information from a specified file into that subkey.
key is a handle returned by
ConnectRegistry()or one of the constantsHKEY_USERSorHKEY_LOCAL_MACHINE.sub_key is a string that identifies the subkey to load.
file_name is the name of the file to load registry data from. This file must have been created with the
SaveKey()function. Under the file allocation table (FAT) file system, the filename may not have an extension.A call to
LoadKey()fails if the calling process does not have theSE_RESTORE_PRIVILEGEprivilege. Note that privileges are different from permissions – see the RegLoadKey documentation for more details.If key is a handle returned by
ConnectRegistry(), then the path specified in file_name is relative to the remote computer.