Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.035 c
14-1100948044
Progh
2004-11-20 13:54
2004.12.12
Подскажите ХОРОШУЮ статью перехвата WIN API с примерами на Delphi


14-1101020589
Sour
2004-11-21 10:03
2004.12.12
SMTP и POP3 серверы


1-1101783419
Змей
2004-11-30 05:56
2004.12.12
файл в каталоге с *.exe


14-1100999523
olookin
2004-11-21 04:12
2004.12.12
Когда в Вашем городе начинает ходить общ. транспорт?


3-1100437995
denis24
2004-11-14 16:13
2004.12.12
паковка *.mdb





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский