Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

RegDeleteKey - как удалить ключ с внутренними ключами   Найти похожие ветки 

 
Prov   (2004-10-27 11:17) [0]

Уважаемые мастера. Вообщем, вышеуказанная йункция не удаляет ключ в реестре,если он хранит в себе вложенные ключи... В хелпе так и написано, что данная функциЯ не удалит ключ, если он содержит вложенные ключи. Подскажите, как быть ? Заранее благодарен. И еще, если можно, киньте кусочек кода, как пользоваться ф-ей RegQueryInfoKey(regQueryKey - точно не епомню названия). Премного благодарен.


 
Warlock ©   (2004-10-27 11:37) [1]

Все что могу подсказать - рекурсивная процедура
удаления с использованием RegEnumKey. Дальше думай сам, поскольку я такого не писал.


 
Prov   (2004-10-27 12:05) [2]

В том-то и дело.. Я пробовал пользоваться функцией RegEnumKey, но сам понять не могу, что и куда.. Пожалуйста, подскажите... :(( Еще раз спасибо.


 
clickmaker ©   (2004-10-27 12:21) [3]

на паскаль сам переводи

LONG RecursiveRegDeleteKey(HKEY hParentKey, LPSTR szKeyName)
{
DWORD dwIndex = 0L;
CHAR  szSubKeyName[256];
HKEY  hCurrentKey;
DWORD dwResult;

if((dwResult = RegOpenKey(hParentKey, szKeyName, &hCurrentKey)) ==
 ERROR_SUCCESS)
{
 while((dwResult = RegEnumKey(hCurrentKey, 0, szSubKeyName, 255)) ==
  ERROR_SUCCESS)
 {
  if((dwResult = RecursiveRegDeleteKey(hCurrentKey,
   szSubKeyName)) != ERROR_SUCCESS)
   break;
 }

 if((dwResult == ERROR_NO_MORE_ITEMS) || (dwResult == ERROR_BADKEY))
 {
  dwResult = RegDeleteKey(hParentKey, szKeyName);
 }
}

RegCloseKey(hCurrentKey);
return dwResult;
}


 
Дмитрий Ботвин   (2004-10-27 12:28) [4]

А вот так пробывал:

uses Registry;

//Удаление параметра ключа
procedure TForm1.DeleteRegKey(FullNameKey: String);
  var Reg : TRegistry;
  begin
     Reg := TRegistry.Create;
     Reg.Access:=KEY_ALL_ACCESS;
     if not(Reg.OpenKey(FullNameKey,false)) then
       begin
          Application.MessageBox("Не могу открыть выбранный
          ключ!","Открытие ключа",MB_OK+MB_ICONSTOP);
          exit;
       end;
     if not(Reg.DeleteKey(FullNameKey)) then
       Application.MessageBox("Не могу удалить выбранный ключ!",
                          "Удаление ключа",MB_OK+MB_ICONSTOP);
  end;

Здесь FullNameKey - полное имя ключа.


 
Prov   (2004-10-29 09:40) [5]

Clickmaker - спасибо.
Дмитрий - в том то и дело, что атк я умею... Мне надо на АПИ



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
14-1100041467
GanibalLector
2004-11-10 02:04
2004.12.12
Даешь встречу в Харькове ???


14-1101135499
han_malign
2004-11-22 17:58
2004.12.12
Программная запись CD/DVD, под Windows 2000/XP - есть библиотеки?


3-1100096254
Andriy Tysh
2004-11-10 17:17
2004.12.12
Как вывести отчёт КвикРепортом из КлиентДатаСета только те записи


9-1091858675
dimodim
2004-08-07 10:04
2004.12.12
About анимация 3д моделей


14-1101127318
Erik1
2004-11-22 15:41
2004.12.12
Как найти какой unit добавляет QR4RunD5 и VirtualTreesD5?