mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Also ignore non-existent sub-keys when deleting trees
This commit is contained in:
parent
402b93394d
commit
6685946fdb
@ -129,9 +129,6 @@ RegSetKeyValue = cwrap(
|
|||||||
'RegSetKeyValueW', LONG, a('key', HKEY), a('sub_key', LPCWSTR, None), a('name', LPCWSTR, None),
|
'RegSetKeyValueW', LONG, a('key', HKEY), a('sub_key', LPCWSTR, None), a('name', LPCWSTR, None),
|
||||||
a('dtype', DWORD, winreg.REG_SZ), a('data', LPCVOID, None), a('size', DWORD))
|
a('dtype', DWORD, winreg.REG_SZ), a('data', LPCVOID, None), a('size', DWORD))
|
||||||
|
|
||||||
RegDeleteTree = cwrap(
|
|
||||||
'RegDeleteTreeW', LONG, a('key', HKEY), a('sub_key', LPCWSTR, None))
|
|
||||||
|
|
||||||
def delete_value_errcheck(result, func, args):
|
def delete_value_errcheck(result, func, args):
|
||||||
if result == winerror.ERROR_FILE_NOT_FOUND:
|
if result == winerror.ERROR_FILE_NOT_FOUND:
|
||||||
return args
|
return args
|
||||||
@ -140,6 +137,8 @@ def delete_value_errcheck(result, func, args):
|
|||||||
return args
|
return args
|
||||||
RegDeleteKeyValue = cwrap(
|
RegDeleteKeyValue = cwrap(
|
||||||
'RegDeleteKeyValueW', LONG, a('key', HKEY), a('sub_key', LPCWSTR, None), a('name', LPCWSTR, None), errcheck=delete_value_errcheck)
|
'RegDeleteKeyValueW', LONG, a('key', HKEY), a('sub_key', LPCWSTR, None), a('name', LPCWSTR, None), errcheck=delete_value_errcheck)
|
||||||
|
RegDeleteTree = cwrap(
|
||||||
|
'RegDeleteTreeW', LONG, a('key', HKEY), a('sub_key', LPCWSTR, None), errcheck=delete_value_errcheck)
|
||||||
RegEnumKeyEx = cwrap(
|
RegEnumKeyEx = cwrap(
|
||||||
'RegEnumKeyExW', LONG, a('key', HKEY), a('index', DWORD), a('name', LPWSTR), a('name_size', LPDWORD), a('reserved', LPDWORD, None),
|
'RegEnumKeyExW', LONG, a('key', HKEY), a('index', DWORD), a('name', LPWSTR), a('name_size', LPDWORD), a('reserved', LPDWORD, None),
|
||||||
a('cls', LPWSTR, None), a('cls_size', LPDWORD, None), a('last_write_time', ctypes.POINTER(FILETIME), in_arg=False),
|
a('cls', LPWSTR, None), a('cls_size', LPDWORD, None), a('last_write_time', ctypes.POINTER(FILETIME), in_arg=False),
|
||||||
@ -184,12 +183,14 @@ class Key(object):
|
|||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
def delete_value(self, name=None, sub_key=None):
|
def delete_value(self, name=None, sub_key=None):
|
||||||
' Delete the named value from this key. If name is None the default value is deleted. '
|
' Delete the named value from this key. If name is None the default value is deleted. If name does not exist, not error is reported. '
|
||||||
RegDeleteKeyValue(self.hkey, sub_key, name)
|
RegDeleteKeyValue(self.hkey, sub_key, name)
|
||||||
|
|
||||||
def delete_tree(self, sub_key=None):
|
def delete_tree(self, sub_key=None):
|
||||||
''' Delete this key and all its children. Note that a key is not
|
''' Delete this all children of this key. Note that a key is not
|
||||||
actually deleted till the last handle to it is closed. '''
|
actually deleted till the last handle to it is closed. Also if you
|
||||||
|
specify a sub_key, then the sub-key is deleted completely. If sub_key
|
||||||
|
does not exist, no error is reported.'''
|
||||||
RegDeleteTree(self.hkey, sub_key)
|
RegDeleteTree(self.hkey, sub_key)
|
||||||
|
|
||||||
def set(self, name=None, value=None, sub_key=None, has_expansions=False):
|
def set(self, name=None, value=None, sub_key=None, has_expansions=False):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user