Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с реестром, Как удалить ключ с содержимым? 
:(
    Опции темы
MuForum
Дата 25.6.2007, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 427
Регистрация: 13.6.2007
Где: Молдова, Кишинев

Репутация: нет
Всего: 4



Доброе время суток!


Столкнулся с такой проблемой, мне необходимо удалить ключ с содержимым или удалить какой-то командой всё содержимое из ключа, а затем удалить и сам ключ!


P.S. -> В интернете похожего не нашел и не смог решить свою проблему, хотя на первый взгляд всё просто!


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли)
PM MAIL WWW ICQ Skype MSN   Вверх
Alexeis
Дата 25.6.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



  Удалить ключ можно методом DeleteKey, очистить значение DeleteValue.

Цитата(MuForum @  25.6.2007,  02:02 Найти цитируемый пост)
P.S. -> В интернете похожего не нашел и не смог решить свою проблему, хотя на первый взгляд всё просто! 

  
  Код в студию. 100 раз делал, ничего сложного.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MuForum
Дата 25.6.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 427
Регистрация: 13.6.2007
Где: Молдова, Кишинев

Репутация: нет
Всего: 4



Код

procedure TForm2Settings.dxButton1Click(Sender: TObject); // Кнопка Save.
begin
  if (CheckBox4.Checked=true) then  // Параметр, при статусе true, необходимо удалить ключ!
  Begin
  Form2Settings.Visible := false;
  pReg := TRegistry.Create;
  pReg.RootKey := HKEY_CURRENT_USER;
  pReg.OpenKey('Software\', True);
  pReg.DeleteKey('Software\Webzen');
  pReg.CloseKey;
  pReg.Free;
  Application.Terminate;
  end
  else
  pReg := TRegistry.Create;
  pReg.RootKey := HKEY_CURRENT_USER;
  pReg.OpenKey('Software\Webzen\Mu\Config\', true);
  pReg.WriteBool('SoundOnOff', CheckBox1.Checked);
  pReg.WriteBool('MusicOnOff', CheckBox2.Checked);
  pReg.WriteBool('WindowMode', CheckBox3.Checked);
  pReg.WriteInteger('Resolution', RadioGroup1.ItemIndex);
  pReg.WriteInteger('ColorDepth', RadioGroup2.ItemIndex);
  pReg.WriteInteger('RefreshRate', RadioGroup3.ItemIndex);
  pReg.WriteString('ID', Edit1.text);
  pReg.CloseKey;
  pReg.Free;
  Close;
end;


 smile 

Это сообщение отредактировал(а) MuForum - 25.6.2007, 11:24


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли)
PM MAIL WWW ICQ Skype MSN   Вверх
Alexeis
Дата 25.6.2007, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Цитата

Call DeleteKey to remove a specified key and its associated data, if any, from the registry. Under Windows 95, if the key has subkeys, the subkeys and any associated data are also removed. Under Windows NT, subkeys must be explicitly deleted by separate calls to DeleteKey.  

DeleteKey returns true if key deletion is successful. On error, DeleteKey returns false. 



Добавлено через 1 минуту и 9 секунд
Т.е. ветку нельзя удалять пока в ней есть ключи. Нужно удалить все ключи а только потом ветку.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MuForum
Дата 25.6.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 427
Регистрация: 13.6.2007
Где: Молдова, Кишинев

Репутация: нет
Всего: 4



Цитата(Alexeis @ 25.6.2007,  11:28)
Цитата

Call DeleteKey to remove a specified key and its associated data, if any, from the registry. Under Windows 95, if the key has subkeys, the subkeys and any associated data are also removed. Under Windows NT, subkeys must be explicitly deleted by separate calls to DeleteKey.  

DeleteKey returns true if key deletion is successful. On error, DeleteKey returns false. 



Добавлено через 1 минуту и 9 секунд
Т.е. ветку нельзя удалять пока в ней есть ключи. Нужно удалить все ключи а только потом ветку. 


1) А как удалить одним махом все настройки из ключа?
2) Можно наглядный пример пожалуйста?!

Это сообщение отредактировал(а) MuForum - 25.6.2007, 11:43


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа!" (Р. Шекли)
PM MAIL WWW ICQ Skype MSN   Вверх
Alexeis
Дата 25.6.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



  В прикрепленном файле скрипт для создания ветки

Код

procedure TForm1.FormCreate(Sender: TObject);
var
  R : TRegistry;

const
  Root = 'HKEY_CURRENT_USER';

procedure RecurseDelete(key : AnsiString);
var
  s  : TStringList;
  i  : Integer;
Begin
  R.OpenKey(key, false);
  if R.HasSubKeys
  then
    Begin
      s := TStringList.Create;
      R.GetKeyNames(s);
      R.CloseKey;
      for I := 0 to s.Count - 1
      do
        RecurseDelete(key + '\' + s[i]);

      s.Free;
    End;

  R.CloseKey;
  R.DeleteKey(key);
end;

begin
  R := TRegistry.Create;
  R.RootKey := HKEY_CURRENT_USER;
  RecurseDelete('test000');
  R.Free;
end;


Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  1.reg 0,46 Kb


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1012 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.