deimos
Зарегистрирован: 15.11.2001 Сообщения: 61 Откуда: Харьков
|
Добавлено: Пт Ноя 30 2001 18:27 Заголовок сообщения: Re: Спасибо + Другой вопрос""?"" |
|
|
Если я тебя правильно понял, то читай: в Windows NT нельзя удалить подраздел, который содержит в себе подразделы, сначала надо удалить все внутренние подразделы Я писал свою ф-ю (Можешь еще посмотреть ф-ю SHDeleteKey в MSDN )
BOOL CRegistry::DeleteKey(HKEY hKey ,CString path) { CString currentPath = path; LPTSTR lpName; DWORD cbMaxNameLength, iSubKeys;
while(isSubKeys(hKey,path)) { if(!Open(hKey,current.. return FALSE; if(RegQueryInfoKey(m_hKey,0,0,0,&iSubKeys, &cbMaxNameLength, 0, 0,0,0,0,0) != ERROR_SUCCESS) return FALSE; if(iSubKeys 0) { lpName = new TCHAR[cbMaxNameLength+1]; if(RegEnumKeyEx(m_hKey, 0, lpName, &cbMaxNameLength, 0, 0,0,NULL) != ERROR_SUCCESS) { delete lpName; return FALSE; } currentPath += "\\"; currentPath += lpName; delete lpName; } else { if(::RegDeleteKey(hKey,currentPath) != ERROR_SUCCESS) return FALSE; int i=1; while(currentPath[currentPath.GetLength()-i] != '\\') i++; currentPath = currentPath.Left(currentPath.GetLength()-i); } } if( RegDeleteKey(hKey,path) != ERROR_SUCCESS) return FALSE; return TRUE; } |
|