Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2024, 15:57   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Поиск по реестру в цикле

Подскажите, пожалуйста, как в цикле найти нужное значение в реестре.
Есть ветка со множеством разделов
Компьютер\HKEY_LOCAL_MACHINE\SOFTWA RE\WOW6432Node\Microsoft\Windows\Cu rrentVersion\Uninstall
В ней нужно найти параметр DisplayName с конкретным значением.
Shouldercannon вне форума Ответить с цитированием
Старый 08.04.2024, 11:39   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

тут, я бы сказал, надо формировать список веток, как при поиске в папке. и потом смотреть, если ещё есть ветка - в список заносим, а если есть параметр - проверяем значение.
---------
за основу взять код для поиска всех подпапок в папке.
попробуй с готовым кодом для файлов помудрить.
https://www.programmersforum.ru/show...=218592&page=2
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 08.04.2024 в 11:42.
NetSpace вне форума Ответить с цитированием
Старый 08.04.2024, 11:47   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Все это и делаю методы выше. Осталось только OpenKey и ReadString в цикл заделать.
p51x вне форума Ответить с цитированием
Старый 08.04.2024, 12:53   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Перебор веток аналогичен перебору дерева каталогов. То есть напрашивается рекурсия или стек.
Arigato вне форума Ответить с цитированием
Старый 08.04.2024, 20:25   #5
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
var
  SL: TStringList;
  Reg: TRegistry;
  I: Integer;
begin
  Memo1.Clear;
  try
    SL := TStringList.Create;
     try
      try
        Reg := TRegistry.Create;
        try
          Reg.RootKey := HKEY_LOCAL_MACHINE;
          if Reg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') then
          begin
            Reg.GetKeyNames(SL);
            for I := 0 to SL.Count - 1 do
            begin
              Reg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + SL[I]);
              if (Pos('Тест', Reg.ReadString('DisplayName')) > 0) then
              begin
                Memo1.Lines.Add(Reg.ReadString('DisplayVersion'));
              end;
              Reg.CloseKey;
            end;
            Reg.CloseKey;
          end;
        except
        end;
      finally
        FreeAndNil(Reg);
      end;
    except
    end;
  finally
    FreeAndNil(SL);
  end;
end;
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поик по реестру WennY Общие вопросы Delphi 1 13.10.2011 08:27
Как сделать поиск по реестру Lotu C++ Builder 0 27.02.2011 15:09
Вопросы по реестру Titan123 Общие вопросы Delphi 5 02.07.2008 13:44
Поиск по реестру delphin100 Общие вопросы Delphi 2 30.03.2008 13:22
Доступ к реестру Terran Общие вопросы Delphi 1 27.03.2008 01:59