winreg --- Windows 註冊表存取


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.

可用性: Windows.

在 3.3 版的變更: Several functions in this module used to raise a WindowsError, which is now an alias of OSError.

函式

This module offers the following functions:

winreg.CloseKey(hkey)

Closes a previously opened registry key. The hkey argument specifies a previously opened key.

備註

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". If None, 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 OSError exception is raised.

引發一個附帶引數 computer_namekey稽核事件 winreg.ConnectRegistry

在 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 OSError exception is raised.

引發一個附帶引數 keysub_keyaccess稽核事件 winreg.CreateKey

引發一個附帶引數 key稽核事件 winreg.OpenKey/result

在 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 OSError exception is raised.

引發一個附帶引數 keysub_keyaccess稽核事件 winreg.CreateKey

引發一個附帶引數 key稽核事件 winreg.OpenKey/result

在 3.2 版被加入.

在 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 OSError exception is raised.

引發一個附帶引數 keysub_keyaccess稽核事件 winreg.DeleteKey

在 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 OSError exception is raised.

On unsupported Windows versions, NotImplementedError is raised.

引發一個附帶引數 keysub_keyaccess稽核事件 winreg.DeleteKey

在 3.2 版被加入.

在 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 是用於識別要移除之值的字串。

引發一個附帶引數 keyvalue稽核事件 winreg.DeleteValue

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 OSError exception is raised, indicating, no more values are available.

引發一個附帶引數 keyindex稽核事件 winreg.EnumKey

在 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 OSError exception is raised, indicating no more values.

The result is a tuple of 3 items:

Index

含義

0

A string that identifies the value name

1

An object that holds the value data, and whose type depends on the underlying registry type

2

An integer that identifies the type of the value data (see table in docs for SetValueEx())

引發一個附帶引數 keyindex稽核事件 winreg.EnumValue

在 3.3 版的變更: See above.

winreg.ExpandEnvironmentStrings(str)

Expands environment variable placeholders %NAME% in strings like REG_EXPAND_SZ:

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

引發一個附帶引數 str稽核事件 winreg.ExpandEnvironmentStrings

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. Unlike CloseKey(), the FlushKey() method returns only when all the data has been written to the registry. An application should only call FlushKey() if it requires absolute certainty that registry changes are on disk.

備註

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 constants HKEY_USERS or HKEY_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 the SE_RESTORE_PRIVILEGE privilege. 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.

引發一個附帶引數 keysub_keyfile_name稽核事件 winreg.LoadKey

winreg.OpenKey(key,