Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.07.2007, 11:59
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию Помогите с папками и подпапками реестра

Мне нужно получить все значения папки HKEY_CURRENT_USER\Software (значение ВСЕХ ключей папки Software и всех её подпапок) и перенести все найденные значения в Memo1. Как получить доступ к папке Software я знаю это делается так:
reg.OpenKey('Software',false);
reg.GetValueNames(memo1.Lines);
А вот как получить доступ ко всем подпапкам я не знаю, но предполагаю что это должно быть так:
reg.OpenKey('Software',false,здесь какое то свойство которое указывает на все подпапки);
reg.GetValueNames(memo1.Lines);
Help me please!
Ответить с цитированием
  #2  
Старый 07.07.2007, 14:04
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Код:
{ 

This example demonstrates how to enumerate all registry keys from 

a certain key (here: HKEY_CURRENT_USER) 

}

 

 

 

 

uses

  Registry;

 

procedure TForm1.Button1Click(Sender: TObject);

var

  indent: Integer;

 

     procedure EnumAllKeys(hkey: THandle);

  var

    l: TStringList;

    n: Integer;

  begin

    Inc(indent, 2);

    with TRegistry.Create do

      try

        RootKey := hkey;

        OpenKey(EmptyStr, False);

        l := TStringList.Create;

        try

          GetKeynames(l);

          CloseKey;

          for n := 0 to l.Count - 1 do

          begin

            memo1.Lines.Add(StringOfChar(' ', indent) + l[n]);

            if OpenKey(l[n], False) then

            begin

              EnumAllKeys(CurrentKey);

              CloseKey;

            end;

          end;

        finally

          l.Free

        end;

      finally

        Free;

      end;

    Dec(indent, 2);

  end;

 

begin

  Memo1.Clear;

  Memo1.Lines.Add('Keys under HKEY_CURRENT_USER');

  indent := 0;

  Memo1.Lines.BeginUpdate;

  try

    EnumAllKEys(HKEY_CURRENT_USER);

  finally

    Memo1.Lines.EndUpdate;

  end;

end;
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #3  
Старый 07.07.2007, 15:10
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию

Спасибо тебе огромное!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter