In article <02a501bf6cc9$f1681620$4500a8c0@thomasnotebook>, Thomas Heller <thomas.heller@ion-tof.com> writes
I propose to include functions to access the windows registry into the python 1.6 core.
I have thrown together some code which I will post hopefully tomorrow, but I would like to hear some comments before.
aaaaaargghhhhh just when I had thrown some code together to use the win32api stuff. mumble dribble
---------------------------------------------------------------------- winreg - registry access module
Constants: HKEY_CLASSES_ROOT, HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_USERS - bases of registry KEY_READ, KEY_WRITE, KEY_ALL_ACCESS - access rights REG_SZ, REG_DWORD, REG_BINARY - typecodes for values
Exception: error - raised when a function fails. Will usually contain a windows error code and a textual description.
Functions: OpenKey (base, subkey, [, rights=KEY_READ]) -> integer Opens an existing key with the specified access rights and returns an integer handle. The handle must be closed by a call to CloseKey().
CreateKey (base, subkey [, sam=KEY_ALL_ACCESS]) -> integer Creates a new subkey or opens an exsiting one and returns an integer handle. base must be one of the HKEY_ constants or an integer handle. The handle must be closed by a call to CloseKey().
CloseKey (handle) Closes a key handle.
EnumValues (handle, subkey) -> sequence Returns a sequence containing name, value, typecode triples for each existing value.
EnumKeys (handle, subkey) -> sequence Returns a sequence containing the names of all subkeys.
QueryValue (handle, subkey) -> tuple Returns a tuple containing name, value and typecode.
SetValue (handle, name, typecode, value) Sets the value of a name to value. value must be a string for REG_SZ or REG_BINARY, an integer for REG_DWORD.
DeleteValue (handle, valuename) Deletes the value.
DeleteKey (handle, name [,recursive=0) Deletes the named key if no subkeys exist. If recursive is given as a true value, subkeys are recursively deleted. This is done with Reg* calls, NOT with SHDeleteKey and SHDeleteEmptyKey functions, so should work under any flavor of NT and Win9x.
Note: To use the SetValue and Delete* functions, the key must have been opened with KEY_WRITE_ACCESS or KEY_ALL_ACCESS. ---------------------------------------------------------------------- Open Questions: Is the recursive-flag for DeleteKey() too dangerous? Should I switch from an integer handle to a full blown python-object, which would call CloseKey() automatically in the destructor? A higher level interface would be nice, but this should probably implemented on top of this module in python.
Comments appreciated!
Thomas Heller ION-TOF GmbH
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://www.python.org/mailman/listinfo/distutils-sig
-- Robin Becker