Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 2, 2008 17:12:57

hellt
От:
Зарегистрирован: 2008-03-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

работа _winreg (удаление с подключами)

Доброго времени суток.

Как осуществить удаление ключа (со всеми его подключами)?

Может есть у кого на примете хороший враппер над низкоуровневым _winreg?



Офлайн

#2 Июнь 2, 2008 17:19:06

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

работа _winreg (удаление с подключами)

Офлайн

#3 Июнь 2, 2008 17:19:57

hellt
От:
Зарегистрирован: 2008-03-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

работа _winreg (удаление с подключами)

пробовали… не хотелось использовать целый модуль, хотел подцепить идею…



Офлайн

#4 Июнь 2, 2008 17:31:17

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

работа _winreg (удаление с подключами)

как удалить рекурсивно? тогда идея есть и в shutil.rmtree



Офлайн

#5 Июнь 2, 2008 17:37:31

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

работа _winreg (удаление с подключами)

читаем MSDN

SHDeleteKey Function

--------------------------------------------------------------------------------

Deletes a subkey and all its descendants. The function will remove the key and all of the key's values from the registry.

Syntax

DWORD SHDeleteKey( HKEY hkey,
LPCTSTR pszSubKey
);
Parameters

hkey
Handle to the currently open key, or any of the following predefined values:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_DYN_DATA (Microsoft® Windows® 95 only)
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA (Microsoft Windows NT® only)
HKEY_USERS
pszSubKey
Address of a null-terminated string specifying the name of the key to delete.
Return Value

Returns ERROR_SUCCESS if successful, or a nonzero error code defined in Winerror.h otherwise. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to retrieve a generic description of the error.

Function Information

Minimum DLL Version shlwapi.dll version 4.71 or later
Custom Implementation No
Header shlwapi.h
Import library shlwapi.lib
Minimum operating systems Windows 2000, Windows NT 4.0 with Internet Explorer 4.0, Windows 98, Windows 95 with Internet Explorer 4.0



Офлайн

#6 Июнь 2, 2008 17:51:11

hellt
От:
Зарегистрирован: 2008-03-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

работа _winreg (удаление с подключами)

мм. я новичок в питоне… поэтому не знаю как получить доступ к этой функции(



Офлайн

#7 Июнь 2, 2008 18:36:09

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

работа _winreg (удаление с подключами)

в таком случае или ищите готовый высокоуровневый враппер или начинайте читать описание ctypes и MSDN :-)



Офлайн

#8 Июнь 2, 2008 19:24:06

hellt
От:
Зарегистрирован: 2008-03-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

работа _winreg (удаление с подключами)

Вообщем путем нагугливания и вырезания из ООП структуры получил следующее

def getSubKeys(key):
keylist,idx = ,0
while True:
try:
subkey = _winreg.EnumKey(key,idx)
keylist.append(subkey)
idx +=1
except EnvironmentError:
break
return keylist

def DeleteKeysFromReg(aKey,key):
childKeys = getSubKeys(key)
for i in childKeys:
childKey = {“PyHKey”:_winreg.CreateKey(key,i),“name”:str(i)}
DeleteKeysFromReg(key,childKey)
_winreg.DeleteKey(aKey,key)

aReg = _winreg.ConnectRegistry(None, _winreg.HKEY_CURRENT_USER)
audioKey = _winreg.OpenKey(aReg,r“Software\SJLabs\SJvoip Project\SJphone\Options\Audio”, 0, _winreg.KEY_ALL_ACCESS)
optsKey = _winreg.OpenKey(aReg,r“Software\SJLabs\SJvoip Project\SJphone\Options”, 0, _winreg.KEY_ALL_ACCESS)
DeleteKeysFromReg(optsKey,{“PyHKey”:audioKey,“name”:“Audio”})



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version