Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Удаление ключа в реестре

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Gammy
Гость





СообщениеДобавлено: Сб Ноя 24 2001 14:12    Заголовок сообщения: Удаление ключа в реестре Ответить с цитатой

Уважаемые, please HELP!!!
Пытаюсь программно удалить ключ из реестра: RegDeleteKey HKEY_CLASSES_ROOT, "CLSID\{114CE72A-C4B1-4804-AC02-5BA9DE8050A2}".
Выполняется с ошибкой №2 и ключ не удаляется.
1) Что за ошибка?
2) Если что-то в коде не правильно, то как правильно?
3) надо ли перед удалением открывать ключ?
Вернуться к началу
gadyuka



Зарегистрирован: 12.11.2001
Сообщения: 36
Откуда: Moscow

СообщениеДобавлено: Вс Ноя 25 2001 04:31    Заголовок сообщения: Re: Удаление ключа в реестре Ответить с цитатой

Насколько мне помнится, lpszSubKey должен содержать только название ключа - "CLSID" - а не пару Name\DefaultValue... а hKey - тот Key в котором непосредственно вложен этот CLSID (hKey вроде как должен быть открыт а SubKey - необязательно) - Тогда все работает...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Арлекин
Гость





СообщениеДобавлено: Вс Ноя 25 2001 08:47    Заголовок сообщения: Re: Удаление ключа в реестре Ответить с цитатой

А MSDN слабо заглянуть ? У тебя половина сигнатуры функциии отсутствует.
Вернуться к началу
Gammy
Гость





СообщениеДобавлено: Пн Ноя 26 2001 13:48    Заголовок сообщения: Спасибо + Другой вопрос""?"" Ответить с цитатой

Спасибо вам ребята за то что высказались.Wink) Я нашел ошибку. Удаление не проходило т.к., этот ключ содержал другие ключи.!!!!
Тогда вопрос! А как сделать так чтобы удаление все таки проходило за одну функцию? (если такая функция конечно есть).
Вернуться к началу
big_beer
Гость





СообщениеДобавлено: Ср Ноя 28 2001 07:20    Заголовок сообщения: Re: Спасибо + Другой вопрос""?"" Ответить с цитатой

Нет такой функции - если только не сделать ее самому. (Нормальное накладываемое ограничение )
Вернуться к началу
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;
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...