2007-08-15 11:28:01 -03:00
|
|
|
:mod:`_winreg` -- Windows registry access
|
|
|
|
=========================================
|
|
|
|
|
|
|
|
.. module:: _winreg
|
|
|
|
:platform: Windows
|
|
|
|
:synopsis: Routines and objects for manipulating the Windows registry.
|
|
|
|
.. sectionauthor:: Mark Hammond <MarkH@ActiveState.com>
|
|
|
|
|
2008-05-25 04:46:33 -03:00
|
|
|
.. note::
|
|
|
|
The :mod:`_winreg` module has been renamed to :mod:`winreg` in Python 3.0.
|
|
|
|
The :term:`2to3` tool will automatically adapt imports when converting your
|
|
|
|
sources to 3.0.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
This module exposes a very low-level interface to the Windows registry; it is
|
2010-04-05 05:08:36 -03:00
|
|
|
expected that in the future a new ``winreg`` module will be created offering a
|
2007-08-15 11:28:01 -03:00
|
|
|
higher-level interface to the registry API.
|
|
|
|
|
|
|
|
This module offers the following functions:
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: CloseKey(hkey)
|
|
|
|
|
|
|
|
Closes a previously opened registry key. The hkey argument specifies a
|
|
|
|
previously opened key.
|
|
|
|
|
|
|
|
Note that if *hkey* is not closed using this method (or via
|
|
|
|
:meth:`handle.Close`), it is closed when the *hkey* object is destroyed by
|
|
|
|
Python.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: ConnectRegistry(computer_name, key)
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
Establishes a connection to a predefined registry handle on another computer,
|
|
|
|
and returns a :ref:`handle object <handle-object>`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*computer_name* is the name of the remote computer, of the form
|
2007-08-15 11:28:01 -03:00
|
|
|
``r"\\computername"``. If ``None``, the local computer is used.
|
|
|
|
|
|
|
|
*key* is the predefined handle to connect to.
|
|
|
|
|
Merged revisions 70642,70648,70656,70661,70765,70773,70789,70824-70825,70828,70830,70832,70836,70838,70842,70851,70855,70857-70858 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r70642 | georg.brandl | 2009-03-28 01:48:48 +0100 (Sa, 28 Mär 2009) | 1 line
Fix typo.
........
r70648 | georg.brandl | 2009-03-28 20:10:37 +0100 (Sa, 28 Mär 2009) | 1 line
#5324: document __subclasses__().
........
r70656 | georg.brandl | 2009-03-28 20:33:33 +0100 (Sa, 28 Mär 2009) | 2 lines
Add a script to fixup rst files if the pre-commit hook rejects them.
........
r70661 | georg.brandl | 2009-03-28 20:57:36 +0100 (Sa, 28 Mär 2009) | 2 lines
Add section numbering to some of the larger subdocuments.
........
r70765 | georg.brandl | 2009-03-31 00:09:34 +0200 (Di, 31 Mär 2009) | 1 line
#5199: make warning about vars() assignment more visible.
........
r70773 | georg.brandl | 2009-03-31 00:43:00 +0200 (Di, 31 Mär 2009) | 1 line
#5039: make it clear that the impl. note refers to CPython.
........
r70789 | georg.brandl | 2009-03-31 03:25:15 +0200 (Di, 31 Mär 2009) | 1 line
Fix a wrong struct field assignment (docstring as closure).
........
r70824 | georg.brandl | 2009-03-31 17:43:20 +0200 (Di, 31 Mär 2009) | 1 line
#5519: remove reference to Kodos, which seems dead.
........
r70825 | georg.brandl | 2009-03-31 17:46:30 +0200 (Di, 31 Mär 2009) | 1 line
#5566: fix versionadded from PyLong ssize_t functions.
........
r70828 | georg.brandl | 2009-03-31 17:50:16 +0200 (Di, 31 Mär 2009) | 1 line
#5581: fget argument of abstractproperty is optional as well.
........
r70830 | georg.brandl | 2009-03-31 18:11:45 +0200 (Di, 31 Mär 2009) | 1 line
#5529: backport new docs of import semantics written by Brett to 2.x.
........
r70832 | georg.brandl | 2009-03-31 18:31:11 +0200 (Di, 31 Mär 2009) | 1 line
#1386675: specify WindowsError as the exception, because it has a winerror attribute that EnvironmentError doesnt have.
........
r70836 | georg.brandl | 2009-03-31 18:50:25 +0200 (Di, 31 Mär 2009) | 1 line
#5417: replace references to undocumented functions by ones to documented functions.
........
r70838 | georg.brandl | 2009-03-31 18:54:38 +0200 (Di, 31 Mär 2009) | 1 line
#992207: document that the parser only accepts \\n newlines.
........
r70842 | georg.brandl | 2009-03-31 19:13:06 +0200 (Di, 31 Mär 2009) | 1 line
#970783: document PyObject_Generic[GS]etAttr.
........
r70851 | georg.brandl | 2009-03-31 20:26:55 +0200 (Di, 31 Mär 2009) | 1 line
#837577: note cryptic return value of spawn*e on invalid env dicts.
........
r70855 | georg.brandl | 2009-03-31 20:30:37 +0200 (Di, 31 Mär 2009) | 1 line
#5245: note that PyRun_SimpleString doesnt return on SystemExit.
........
r70857 | georg.brandl | 2009-03-31 20:33:10 +0200 (Di, 31 Mär 2009) | 1 line
#5227: note that Py_Main doesnt return on SystemExit.
........
r70858 | georg.brandl | 2009-03-31 20:38:56 +0200 (Di, 31 Mär 2009) | 1 line
#5241: document missing U in regex howto.
........
2009-04-05 18:11:43 -03:00
|
|
|
The return value is the handle of the opened key. If the function fails, a
|
2010-04-05 05:08:36 -03:00
|
|
|
:exc:`WindowsError` exception is raised.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: CreateKey(key, sub_key)
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
Creates or opens the specified key, returning a
|
|
|
|
:ref:`handle object <handle-object>`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*sub_key* is a string that names the key this method opens or creates.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
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.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
If the key already exists, this function opens the existing key.
|
|
|
|
|
Merged revisions 70642,70648,70656,70661,70765,70773,70789,70824-70825,70828,70830,70832,70836,70838,70842,70851,70855,70857-70858 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r70642 | georg.brandl | 2009-03-28 01:48:48 +0100 (Sa, 28 Mär 2009) | 1 line
Fix typo.
........
r70648 | georg.brandl | 2009-03-28 20:10:37 +0100 (Sa, 28 Mär 2009) | 1 line
#5324: document __subclasses__().
........
r70656 | georg.brandl | 2009-03-28 20:33:33 +0100 (Sa, 28 Mär 2009) | 2 lines
Add a script to fixup rst files if the pre-commit hook rejects them.
........
r70661 | georg.brandl | 2009-03-28 20:57:36 +0100 (Sa, 28 Mär 2009) | 2 lines
Add section numbering to some of the larger subdocuments.
........
r70765 | georg.brandl | 2009-03-31 00:09:34 +0200 (Di, 31 Mär 2009) | 1 line
#5199: make warning about vars() assignment more visible.
........
r70773 | georg.brandl | 2009-03-31 00:43:00 +0200 (Di, 31 Mär 2009) | 1 line
#5039: make it clear that the impl. note refers to CPython.
........
r70789 | georg.brandl | 2009-03-31 03:25:15 +0200 (Di, 31 Mär 2009) | 1 line
Fix a wrong struct field assignment (docstring as closure).
........
r70824 | georg.brandl | 2009-03-31 17:43:20 +0200 (Di, 31 Mär 2009) | 1 line
#5519: remove reference to Kodos, which seems dead.
........
r70825 | georg.brandl | 2009-03-31 17:46:30 +0200 (Di, 31 Mär 2009) | 1 line
#5566: fix versionadded from PyLong ssize_t functions.
........
r70828 | georg.brandl | 2009-03-31 17:50:16 +0200 (Di, 31 Mär 2009) | 1 line
#5581: fget argument of abstractproperty is optional as well.
........
r70830 | georg.brandl | 2009-03-31 18:11:45 +0200 (Di, 31 Mär 2009) | 1 line
#5529: backport new docs of import semantics written by Brett to 2.x.
........
r70832 | georg.brandl | 2009-03-31 18:31:11 +0200 (Di, 31 Mär 2009) | 1 line
#1386675: specify WindowsError as the exception, because it has a winerror attribute that EnvironmentError doesnt have.
........
r70836 | georg.brandl | 2009-03-31 18:50:25 +0200 (Di, 31 Mär 2009) | 1 line
#5417: replace references to undocumented functions by ones to documented functions.
........
r70838 | georg.brandl | 2009-03-31 18:54:38 +0200 (Di, 31 Mär 2009) | 1 line
#992207: document that the parser only accepts \\n newlines.
........
r70842 | georg.brandl | 2009-03-31 19:13:06 +0200 (Di, 31 Mär 2009) | 1 line
#970783: document PyObject_Generic[GS]etAttr.
........
r70851 | georg.brandl | 2009-03-31 20:26:55 +0200 (Di, 31 Mär 2009) | 1 line
#837577: note cryptic return value of spawn*e on invalid env dicts.
........
r70855 | georg.brandl | 2009-03-31 20:30:37 +0200 (Di, 31 Mär 2009) | 1 line
#5245: note that PyRun_SimpleString doesnt return on SystemExit.
........
r70857 | georg.brandl | 2009-03-31 20:33:10 +0200 (Di, 31 Mär 2009) | 1 line
#5227: note that Py_Main doesnt return on SystemExit.
........
r70858 | georg.brandl | 2009-03-31 20:38:56 +0200 (Di, 31 Mär 2009) | 1 line
#5241: document missing U in regex howto.
........
2009-04-05 18:11:43 -03:00
|
|
|
The return value is the handle of the opened key. If the function fails, a
|
2010-04-05 05:08:36 -03:00
|
|
|
:exc:`WindowsError` exception is raised.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: DeleteKey(key, sub_key)
|
|
|
|
|
|
|
|
Deletes the specified key.
|
|
|
|
|
|
|
|
*key* is an already open key, or any one of the predefined :const:`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.
|
2010-04-05 05:08:36 -03:00
|
|
|
If the method fails, a :exc:`WindowsError` exception is raised.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: DeleteValue(key, value)
|
|
|
|
|
|
|
|
Removes a named value from a registry key.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
|
|
|
*value* is a string that identifies the value to remove.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: EnumKey(key, index)
|
|
|
|
|
|
|
|
Enumerates subkeys of an open registry key, returning a string.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or any one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*index* is an integer that identifies the index of the key to retrieve.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
The function retrieves the name of one subkey each time it is called. It is
|
|
|
|
typically called repeatedly until a :exc:`WindowsError` exception is
|
2007-08-15 11:28:01 -03:00
|
|
|
raised, indicating, no more values are available.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: EnumValue(key, index)
|
|
|
|
|
|
|
|
Enumerates values of an open registry key, returning a tuple.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or any one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*index* is an integer that identifies the index of the value to retrieve.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
The function retrieves the name of one subkey each time it is called. It is
|
|
|
|
typically called repeatedly, until a :exc:`WindowsError` exception is
|
|
|
|
raised, indicating no more values.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
The result is a tuple of 3 items:
|
|
|
|
|
|
|
|
+-------+--------------------------------------------+
|
|
|
|
| Index | Meaning |
|
|
|
|
+=======+============================================+
|
|
|
|
| ``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 |
|
|
|
|
+-------+--------------------------------------------+
|
|
|
|
|
|
|
|
|
2008-01-08 11:46:10 -04:00
|
|
|
.. function:: ExpandEnvironmentStrings(unicode)
|
|
|
|
|
|
|
|
Expands environment strings %NAME% in unicode string like const:`REG_EXPAND_SZ`::
|
2008-01-08 12:18:26 -04:00
|
|
|
|
|
|
|
>>> ExpandEnvironmentStrings(u"%windir%")
|
|
|
|
u"C:\\Windows"
|
|
|
|
|
|
|
|
.. versionadded:: 2.6
|
2008-01-08 11:46:10 -04:00
|
|
|
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. function:: FlushKey(key)
|
|
|
|
|
|
|
|
Writes all the attributes of a key to the registry.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
2008-05-09 03:10:43 -03:00
|
|
|
It is not necessary to call :func:`FlushKey` to change a key. Registry changes are
|
2010-04-05 05:08:36 -03:00
|
|
|
flushed to disk by the registry using its lazy flusher. Registry changes are
|
|
|
|
also flushed to disk at system shutdown. Unlike :func:`CloseKey`, the
|
|
|
|
:func:`FlushKey` method returns only when all the data has been written to the
|
2007-08-15 11:28:01 -03:00
|
|
|
registry. An application should only call :func:`FlushKey` if it requires
|
2010-04-05 05:08:36 -03:00
|
|
|
absolute certainty that registry changes are on disk.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
If you don't know whether a :func:`FlushKey` call is required, it probably
|
2007-08-15 11:28:01 -03:00
|
|
|
isn't.
|
|
|
|
|
|
|
|
|
2008-05-09 03:10:43 -03:00
|
|
|
.. function:: LoadKey(key, sub_key, file_name)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
Creates a subkey under the specified key and stores registration information
|
2007-08-15 11:28:01 -03:00
|
|
|
from a specified file into that subkey.
|
|
|
|
|
|
|
|
*key* is an already open key, or any of the predefined :const:`HKEY_\*`
|
|
|
|
constants.
|
|
|
|
|
|
|
|
*sub_key* is a string that identifies the sub_key to load.
|
|
|
|
|
|
|
|
*file_name* is the name of the file to load registry data from. This file must
|
|
|
|
have been created with the :func:`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
|
|
|
|
:const:`SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different than
|
2010-04-05 05:08:36 -03:00
|
|
|
permissions -- see the Win32 documentation for more details.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
If *key* is a handle returned by :func:`ConnectRegistry`, then the path
|
|
|
|
specified in *fileName* is relative to the remote computer.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
The Win32 documentation implies *key* must be in the :const:`HKEY_USER` or
|
2007-08-15 11:28:01 -03:00
|
|
|
:const:`HKEY_LOCAL_MACHINE` tree. This may or may not be true.
|
|
|
|
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
.. function:: OpenKey(key, sub_key, res=0, sam=KEY_READ)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
Opens the specified key, returning a :ref:`handle object <handle-object>`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
*key* is an already open key, or any one of the predefined :const:`HKEY_\*`
|
|
|
|
constants.
|
|
|
|
|
|
|
|
*sub_key* is a string that identifies the sub_key to open.
|
|
|
|
|
|
|
|
*res* is a reserved integer, and must be zero. The default is zero.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*sam* is an integer that specifies an access mask that describes the desired
|
2007-08-15 11:28:01 -03:00
|
|
|
security access for the key. Default is :const:`KEY_READ`
|
|
|
|
|
|
|
|
The result is a new handle to the specified key.
|
|
|
|
|
Merged revisions 70642,70648,70656,70661,70765,70773,70789,70824-70825,70828,70830,70832,70836,70838,70842,70851,70855,70857-70858 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r70642 | georg.brandl | 2009-03-28 01:48:48 +0100 (Sa, 28 Mär 2009) | 1 line
Fix typo.
........
r70648 | georg.brandl | 2009-03-28 20:10:37 +0100 (Sa, 28 Mär 2009) | 1 line
#5324: document __subclasses__().
........
r70656 | georg.brandl | 2009-03-28 20:33:33 +0100 (Sa, 28 Mär 2009) | 2 lines
Add a script to fixup rst files if the pre-commit hook rejects them.
........
r70661 | georg.brandl | 2009-03-28 20:57:36 +0100 (Sa, 28 Mär 2009) | 2 lines
Add section numbering to some of the larger subdocuments.
........
r70765 | georg.brandl | 2009-03-31 00:09:34 +0200 (Di, 31 Mär 2009) | 1 line
#5199: make warning about vars() assignment more visible.
........
r70773 | georg.brandl | 2009-03-31 00:43:00 +0200 (Di, 31 Mär 2009) | 1 line
#5039: make it clear that the impl. note refers to CPython.
........
r70789 | georg.brandl | 2009-03-31 03:25:15 +0200 (Di, 31 Mär 2009) | 1 line
Fix a wrong struct field assignment (docstring as closure).
........
r70824 | georg.brandl | 2009-03-31 17:43:20 +0200 (Di, 31 Mär 2009) | 1 line
#5519: remove reference to Kodos, which seems dead.
........
r70825 | georg.brandl | 2009-03-31 17:46:30 +0200 (Di, 31 Mär 2009) | 1 line
#5566: fix versionadded from PyLong ssize_t functions.
........
r70828 | georg.brandl | 2009-03-31 17:50:16 +0200 (Di, 31 Mär 2009) | 1 line
#5581: fget argument of abstractproperty is optional as well.
........
r70830 | georg.brandl | 2009-03-31 18:11:45 +0200 (Di, 31 Mär 2009) | 1 line
#5529: backport new docs of import semantics written by Brett to 2.x.
........
r70832 | georg.brandl | 2009-03-31 18:31:11 +0200 (Di, 31 Mär 2009) | 1 line
#1386675: specify WindowsError as the exception, because it has a winerror attribute that EnvironmentError doesnt have.
........
r70836 | georg.brandl | 2009-03-31 18:50:25 +0200 (Di, 31 Mär 2009) | 1 line
#5417: replace references to undocumented functions by ones to documented functions.
........
r70838 | georg.brandl | 2009-03-31 18:54:38 +0200 (Di, 31 Mär 2009) | 1 line
#992207: document that the parser only accepts \\n newlines.
........
r70842 | georg.brandl | 2009-03-31 19:13:06 +0200 (Di, 31 Mär 2009) | 1 line
#970783: document PyObject_Generic[GS]etAttr.
........
r70851 | georg.brandl | 2009-03-31 20:26:55 +0200 (Di, 31 Mär 2009) | 1 line
#837577: note cryptic return value of spawn*e on invalid env dicts.
........
r70855 | georg.brandl | 2009-03-31 20:30:37 +0200 (Di, 31 Mär 2009) | 1 line
#5245: note that PyRun_SimpleString doesnt return on SystemExit.
........
r70857 | georg.brandl | 2009-03-31 20:33:10 +0200 (Di, 31 Mär 2009) | 1 line
#5227: note that Py_Main doesnt return on SystemExit.
........
r70858 | georg.brandl | 2009-03-31 20:38:56 +0200 (Di, 31 Mär 2009) | 1 line
#5241: document missing U in regex howto.
........
2009-04-05 18:11:43 -03:00
|
|
|
If the function fails, :exc:`WindowsError` is raised.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: OpenKeyEx()
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
The functionality of :func:`OpenKeyEx` is provided via :func:`OpenKey`,
|
|
|
|
by the use of default arguments.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: QueryInfoKey(key)
|
|
|
|
|
|
|
|
Returns information about a key, as a tuple.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
|
|
|
The result is a tuple of 3 items:
|
|
|
|
|
|
|
|
+-------+---------------------------------------------+
|
|
|
|
| Index | Meaning |
|
|
|
|
+=======+=============================================+
|
|
|
|
| ``0`` | An integer giving the number of sub keys |
|
|
|
|
| | this key has. |
|
|
|
|
+-------+---------------------------------------------+
|
|
|
|
| ``1`` | An integer giving the number of values this |
|
|
|
|
| | key has. |
|
|
|
|
+-------+---------------------------------------------+
|
|
|
|
| ``2`` | A long integer giving when the key was last |
|
|
|
|
| | modified (if available) as 100's of |
|
|
|
|
| | nanoseconds since Jan 1, 1600. |
|
|
|
|
+-------+---------------------------------------------+
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: QueryValue(key, sub_key)
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
Retrieves the unnamed value for a key, as a string.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*sub_key* is a string that holds the name of the subkey with which the value is
|
|
|
|
associated. If this parameter is ``None`` or empty, the function retrieves the
|
|
|
|
value set by the :func:`SetValue` method for the key identified by *key*.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
Merged revisions 71058,71149-71150,71212,71214-71216,71222,71225,71234,71237-71238,71240-71241,71243,71249,71251 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71058 | georg.brandl | 2009-04-02 20:09:04 +0200 (Do, 02 Apr 2009) | 3 lines
PyErr_NormalizeException may not set an error, so convert the PyErr_SetObject
call on hitting the recursion limit into just assigning it to the arguments provided.
........
r71149 | georg.brandl | 2009-04-04 15:42:39 +0200 (Sa, 04 Apr 2009) | 1 line
#5642: clarify map() compatibility to the builtin.
........
r71150 | georg.brandl | 2009-04-04 15:45:49 +0200 (Sa, 04 Apr 2009) | 1 line
#5601: clarify that webbrowser is not meant for file names.
........
r71212 | georg.brandl | 2009-04-05 12:24:20 +0200 (So, 05 Apr 2009) | 1 line
#1742837: expand HTTP server docs, and fix SocketServer ones to document methods as methods, not functions.
........
r71214 | georg.brandl | 2009-04-05 12:29:57 +0200 (So, 05 Apr 2009) | 1 line
Normalize spelling of Mac OS X.
........
r71215 | georg.brandl | 2009-04-05 12:32:26 +0200 (So, 05 Apr 2009) | 1 line
Avoid sure signs of a diseased mind.
........
r71216 | georg.brandl | 2009-04-05 12:41:02 +0200 (So, 05 Apr 2009) | 1 line
#1718017: document the relation of os.path and the posixpath, ntpath etc. modules better.
........
r71222 | georg.brandl | 2009-04-05 13:07:14 +0200 (So, 05 Apr 2009) | 1 line
#5615: make it possible to configure --without-threads again.
........
r71225 | georg.brandl | 2009-04-05 13:54:07 +0200 (So, 05 Apr 2009) | 1 line
#5580: no need to use parentheses when converterr() argument is actually a type description.
........
r71234 | georg.brandl | 2009-04-05 15:16:35 +0200 (So, 05 Apr 2009) | 1 line
Whitespace normalization.
........
r71237 | georg.brandl | 2009-04-05 16:24:52 +0200 (So, 05 Apr 2009) | 1 line
#1326077: fix traceback formatting of SyntaxErrors. This fixes two differences with formatting coming from Python: a) the reproduction of location details in the error message if no line text is given, b) the prefixing of the last line by one space.
........
r71238 | georg.brandl | 2009-04-05 16:25:41 +0200 (So, 05 Apr 2009) | 1 line
Add NEWS entry for r71237.
........
r71240 | georg.brandl | 2009-04-05 16:40:06 +0200 (So, 05 Apr 2009) | 1 line
#5370: doc update about unpickling objects with custom __getattr__ etc. methods.
........
r71241 | georg.brandl | 2009-04-05 16:48:49 +0200 (So, 05 Apr 2009) | 1 line
#5471: fix expanduser() for $HOME set to "/".
........
r71243 | georg.brandl | 2009-04-05 17:14:29 +0200 (So, 05 Apr 2009) | 1 line
#5432: make plistlib docstring a raw string, since it contains examples with backslash escapes.
........
r71249 | georg.brandl | 2009-04-05 18:30:43 +0200 (So, 05 Apr 2009) | 1 line
#5444: adapt make.bat to new htmlhelp output file name.
........
r71251 | georg.brandl | 2009-04-05 19:17:42 +0200 (So, 05 Apr 2009) | 1 line
#5298: clarify docs about GIL by using more consistent wording.
........
2009-04-05 18:26:31 -03:00
|
|
|
Values in the registry have name, type, and data components. This method
|
2007-08-15 11:28:01 -03:00
|
|
|
retrieves the data for a key's first value that has a NULL name. But the
|
Merged revisions 71058,71149-71150,71212,71214-71216,71222,71225,71234,71237-71238,71240-71241,71243,71249,71251 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71058 | georg.brandl | 2009-04-02 20:09:04 +0200 (Do, 02 Apr 2009) | 3 lines
PyErr_NormalizeException may not set an error, so convert the PyErr_SetObject
call on hitting the recursion limit into just assigning it to the arguments provided.
........
r71149 | georg.brandl | 2009-04-04 15:42:39 +0200 (Sa, 04 Apr 2009) | 1 line
#5642: clarify map() compatibility to the builtin.
........
r71150 | georg.brandl | 2009-04-04 15:45:49 +0200 (Sa, 04 Apr 2009) | 1 line
#5601: clarify that webbrowser is not meant for file names.
........
r71212 | georg.brandl | 2009-04-05 12:24:20 +0200 (So, 05 Apr 2009) | 1 line
#1742837: expand HTTP server docs, and fix SocketServer ones to document methods as methods, not functions.
........
r71214 | georg.brandl | 2009-04-05 12:29:57 +0200 (So, 05 Apr 2009) | 1 line
Normalize spelling of Mac OS X.
........
r71215 | georg.brandl | 2009-04-05 12:32:26 +0200 (So, 05 Apr 2009) | 1 line
Avoid sure signs of a diseased mind.
........
r71216 | georg.brandl | 2009-04-05 12:41:02 +0200 (So, 05 Apr 2009) | 1 line
#1718017: document the relation of os.path and the posixpath, ntpath etc. modules better.
........
r71222 | georg.brandl | 2009-04-05 13:07:14 +0200 (So, 05 Apr 2009) | 1 line
#5615: make it possible to configure --without-threads again.
........
r71225 | georg.brandl | 2009-04-05 13:54:07 +0200 (So, 05 Apr 2009) | 1 line
#5580: no need to use parentheses when converterr() argument is actually a type description.
........
r71234 | georg.brandl | 2009-04-05 15:16:35 +0200 (So, 05 Apr 2009) | 1 line
Whitespace normalization.
........
r71237 | georg.brandl | 2009-04-05 16:24:52 +0200 (So, 05 Apr 2009) | 1 line
#1326077: fix traceback formatting of SyntaxErrors. This fixes two differences with formatting coming from Python: a) the reproduction of location details in the error message if no line text is given, b) the prefixing of the last line by one space.
........
r71238 | georg.brandl | 2009-04-05 16:25:41 +0200 (So, 05 Apr 2009) | 1 line
Add NEWS entry for r71237.
........
r71240 | georg.brandl | 2009-04-05 16:40:06 +0200 (So, 05 Apr 2009) | 1 line
#5370: doc update about unpickling objects with custom __getattr__ etc. methods.
........
r71241 | georg.brandl | 2009-04-05 16:48:49 +0200 (So, 05 Apr 2009) | 1 line
#5471: fix expanduser() for $HOME set to "/".
........
r71243 | georg.brandl | 2009-04-05 17:14:29 +0200 (So, 05 Apr 2009) | 1 line
#5432: make plistlib docstring a raw string, since it contains examples with backslash escapes.
........
r71249 | georg.brandl | 2009-04-05 18:30:43 +0200 (So, 05 Apr 2009) | 1 line
#5444: adapt make.bat to new htmlhelp output file name.
........
r71251 | georg.brandl | 2009-04-05 19:17:42 +0200 (So, 05 Apr 2009) | 1 line
#5298: clarify docs about GIL by using more consistent wording.
........
2009-04-05 18:26:31 -03:00
|
|
|
underlying API call doesn't return the type, so always use
|
|
|
|
:func:`QueryValueEx` if possible.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: QueryValueEx(key, value_name)
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
Retrieves the type and data for a specified value name associated with
|
|
|
|
an open registry key.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
|
|
|
*value_name* is a string indicating the value to query.
|
|
|
|
|
|
|
|
The result is a tuple of 2 items:
|
|
|
|
|
|
|
|
+-------+-----------------------------------------+
|
|
|
|
| Index | Meaning |
|
|
|
|
+=======+=========================================+
|
|
|
|
| ``0`` | The value of the registry item. |
|
|
|
|
+-------+-----------------------------------------+
|
|
|
|
| ``1`` | An integer giving the registry type for |
|
|
|
|
| | this value. |
|
|
|
|
+-------+-----------------------------------------+
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: SaveKey(key, file_name)
|
|
|
|
|
|
|
|
Saves the specified key, and all its subkeys to the specified file.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
|
|
|
*file_name* is the name of the file to save registry data to. This file cannot
|
|
|
|
already exist. If this filename includes an extension, it cannot be used on file
|
|
|
|
allocation table (FAT) file systems by the :meth:`LoadKey`, :meth:`ReplaceKey`
|
2010-04-05 05:08:36 -03:00
|
|
|
or :meth:`RestoreKey` methods.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
If *key* represents a key on a remote computer, the path described by
|
2007-08-15 11:28:01 -03:00
|
|
|
*file_name* is relative to the remote computer. The caller of this method must
|
2010-04-05 05:08:36 -03:00
|
|
|
possess the :const:`SeBackupPrivilege` security privilege. Note that
|
|
|
|
privileges are different than permissions -- see the Win32 documentation for
|
2007-08-15 11:28:01 -03:00
|
|
|
more details.
|
|
|
|
|
|
|
|
This function passes NULL for *security_attributes* to the API.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: SetValue(key, sub_key, type, value)
|
|
|
|
|
|
|
|
Associates a value with a specified key.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*sub_key* is a string that names the subkey with which the value is associated.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
*type* is an integer that specifies the type of the data. Currently this must be
|
|
|
|
:const:`REG_SZ`, meaning only strings are supported. Use the :func:`SetValueEx`
|
|
|
|
function for support for other data types.
|
|
|
|
|
|
|
|
*value* is a string that specifies the new value.
|
|
|
|
|
|
|
|
If the key specified by the *sub_key* parameter does not exist, the SetValue
|
|
|
|
function creates it.
|
|
|
|
|
|
|
|
Value lengths are limited by available memory. Long values (more than 2048
|
|
|
|
bytes) should be stored as files with the filenames stored in the configuration
|
|
|
|
registry. This helps the registry perform efficiently.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
The key identified by the *key* parameter must have been opened with
|
2007-08-15 11:28:01 -03:00
|
|
|
:const:`KEY_SET_VALUE` access.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: SetValueEx(key, value_name, reserved, type, value)
|
|
|
|
|
|
|
|
Stores data in the value field of an open registry key.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*key* is an already open key, or one of the predefined :const:`HKEY_\*`
|
2007-08-15 11:28:01 -03:00
|
|
|
constants.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*value_name* is a string that names the subkey with which the value is
|
2007-08-15 11:28:01 -03:00
|
|
|
associated.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*type* is an integer that specifies the type of the data. This should be one
|
2007-08-15 11:28:01 -03:00
|
|
|
of the following constants defined in this module:
|
|
|
|
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| Constant | Meaning |
|
|
|
|
+==================================+=============================================+
|
|
|
|
| :const:`REG_BINARY` | Binary data in any form. |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_DWORD` | A 32-bit number. |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_DWORD_LITTLE_ENDIAN` | A 32-bit number in little-endian format. |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_DWORD_BIG_ENDIAN` | A 32-bit number in big-endian format. |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_EXPAND_SZ` | Null-terminated string containing |
|
|
|
|
| | references to environment variables |
|
|
|
|
| | (``%PATH%``). |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_LINK` | A Unicode symbolic link. |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_MULTI_SZ` | A sequence of null-terminated strings, |
|
|
|
|
| | terminated by two null characters. (Python |
|
2010-04-05 05:08:36 -03:00
|
|
|
| | handles this termination automatically.) |
|
2007-08-15 11:28:01 -03:00
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_NONE` | No defined value type. |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_RESOURCE_LIST` | A device-driver resource list. |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
| :const:`REG_SZ` | A null-terminated string. |
|
|
|
|
+----------------------------------+---------------------------------------------+
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
*reserved* can be anything -- zero is always passed to the API.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
*value* is a string that specifies the new value.
|
|
|
|
|
|
|
|
This method can also set additional value and type information for the specified
|
|
|
|
key. The key identified by the key parameter must have been opened with
|
|
|
|
:const:`KEY_SET_VALUE` access.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
To open the key, use the :func:`CreateKey` or :func:`OpenKey` methods.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
Value lengths are limited by available memory. Long values (more than 2048
|
|
|
|
bytes) should be stored as files with the filenames stored in the configuration
|
|
|
|
registry. This helps the registry perform efficiently.
|
|
|
|
|
|
|
|
|
|
|
|
.. _handle-object:
|
|
|
|
|
|
|
|
Registry Handle Objects
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
This object wraps a Windows HKEY object, automatically closing it when the
|
|
|
|
object is destroyed. To guarantee cleanup, you can call either the
|
2010-04-05 05:08:36 -03:00
|
|
|
:meth:`Close` method on the object, or the :func:`CloseKey` function.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
All registry functions in this module return one of these objects.
|
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
All registry functions in this module which accept a handle object also accept
|
|
|
|
an integer, however, use of the handle object is encouraged.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-05 05:08:36 -03:00
|
|
|
Handle objects provide semantics for :meth:`__nonzero__` -- thus::
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
if handle:
|
|
|
|
print "Yes"
|
|
|
|
|
|
|
|
will print ``Yes`` if the handle is currently valid (has not been closed or
|
|
|
|
detached).
|
|
|
|
|
|
|
|
The object also support comparison semantics, so handle objects will compare
|
|
|
|
true if they both reference the same underlying Windows handle value.
|
|
|
|
|
2009-10-27 11:37:48 -03:00
|
|
|
Handle objects can be converted to an integer (e.g., using the built-in
|
2007-08-15 11:28:01 -03:00
|
|
|
:func:`int` function), in which case the underlying Windows handle value is
|
2010-04-05 05:08:36 -03:00
|
|
|
returned. You can also use the :meth:`Detach` method to return the integer
|
2007-08-15 11:28:01 -03:00
|
|
|
handle, and also disconnect the Windows handle from the handle object.
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: PyHKEY.Close()
|
|
|
|
|
|
|
|
Closes the underlying Windows handle.
|
|
|
|
|
|
|
|
If the handle is already closed, no error is raised.
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: PyHKEY.Detach()
|
|
|
|
|
|
|
|
Detaches the Windows handle from the handle object.
|
|
|
|
|
|
|
|
The result is an integer (or long on 64 bit Windows) that holds the value of the
|
|
|
|
handle before it is detached. If the handle is already detached or closed, this
|
|
|
|
will return zero.
|
|
|
|
|
|
|
|
After calling this function, the handle is effectively invalidated, but the
|
2010-04-05 05:08:36 -03:00
|
|
|
handle is not closed. You would call this function when you need the
|
|
|
|
underlying Win32 handle to exist beyond the lifetime of the handle object.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-01-08 11:46:10 -04:00
|
|
|
.. method:: PyHKEY.__enter__()
|
2008-01-08 12:18:26 -04:00
|
|
|
PyHKEY.__exit__(\*exc_info)
|
|
|
|
|
|
|
|
The HKEY object implements :meth:`__enter__` and :meth:`__exit__` and thus
|
|
|
|
supports the context protocol for the :keyword:`with` statement::
|
|
|
|
|
|
|
|
with OpenKey(HKEY_LOCAL_MACHINE, "foo") as key:
|
|
|
|
# ... work with key ...
|
|
|
|
|
|
|
|
will automatically close *key* when control leaves the :keyword:`with` block.
|
|
|
|
|
|
|
|
.. versionadded:: 2.6
|
2008-01-08 11:46:10 -04:00
|
|
|
|