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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 12:04   #1
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
Стрелка Реестр

Здравствуйте, нужна ваша помошь, есть ветвь в реестре:
Цитата:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSe t001\Enum\PCI
В ней есть несколько разделов, нужно совершить поиск по этой ветви и найти раздел который имеет строковый параметр со значением "Net" и вывести его адрес, допусти в Caption формы...

Просто без понятия как это проделать (именно поиск значения в ветви реестра).
W0LF вне форума Ответить с цитированием
Старый 14.01.2010, 12:17   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

W0LF, вам поможет этот тестовый пример...
Вложения
Тип файла: zip поиск инфо в реестре.zip (3.6 Кб, 20 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 14.01.2010, 16:31   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Писал раньше, выводет все IP:
Код:
Procedure GetAllIP(Lst :TStrings);
Const
  Rt = HKEY_LOCAL_MACHINE; // Root
  SubItm = 'SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\';//под узел
var I,II :Integer;
    fLst :TStrings;
    Reg :TRegistry;
    S :String;
begin // выдать список всех IP машины
 Lst.Clear;
 Reg := TRegistry.Create;
 fLst := TStringList.Create;
 fLst.Clear;
  Try
 Lst.Add('localhost');  
 Reg.RootKey := Rt;
  // Cписок ключей
 If Reg.OpenKeyReadOnly(SubItm) then
 begin
  Reg.GetKeyNames(fLst);
  Reg.CloseKey;
 end;
  //Разбор ключей
 II := fLst.Count;
 If II>0 then
 For I:=0 to II-1 Do
 begin
  S := '';
    // открыть ключ с IP, для чтения
  If Reg.OpenKeyReadOnly(SubItm + fLst.Strings[I] + '\') then
  begin
     // IP
   If Reg.ValueExists('IPAddress') then
   begin // MultiString
     S := ReadMultirowKey(Reg, 'IPAddress').CommaText;
     S := Trim(S);
    If (S<>'0.0.0.0')And(S<>'') then
     Lst.Add(S);
    S := '';
   end;
     // DhcpIP
   If Reg.ValueExists('DhcpIPAddress') then
   begin // String
     S := Reg.ReadString('DhcpIPAddress');
     S := Trim(S);
    If (S<>'0.0.0.0')And(S<>'') then
     Lst.Add(S);
   end;  
    Reg.CloseKey;
  end;
 end;
  Finally
 Reg.Free;
 fLst.Free;
  End;
end;
Код:
function ReadMultirowKey(reg: TRegistry; Key: string): TStrings;
const
  bufsize = 100;
var
  i: integer;
  s1: string;
  sl: TStringList;
  bin: array[1..bufsize] of char;
begin 
    Result := nil;
  try
    sl := nil;
    sl := TStringList.Create;
    if not Assigned(reg) then
      raise Exception.Create('TRegistry object not assigned.');
    FillChar(bin, bufsize, #0);
    reg.ReadBinaryData(Key, bin, bufsize);
    i := 1;
    s1 := '';
    while i < bufsize do
    begin
      if ord(bin[i]) >= 32 then
        s1 := s1 + bin[i]
      else
      begin
        if Length(s1) > 0 then
        begin
          sl.Add(s1);
          s1 := '';
        end;
      end;
      inc(i);
    end;
    result := sl;
  except
    sl.Free;
    raise;
  end;
end;
Но вам может что из кода пригодиться, а так вам надо рекурсивно сканировать ветви. Получать список параметров, потом читать их значения. Ну и проверять ключи на вложеность, если она есть, рекурсивно сканировать этот ключ. Вроде ясно объяснил.

Последний раз редактировалось Alter; 14.01.2010 в 16:36.
Alter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реестр Bat{CMD}_Men Windows 1 05.10.2009 11:00
Реестр и C++ Лубышев Помощь студентам 1 12.03.2008 08:28
Реестр Teen4jump Общие вопросы Delphi 2 28.02.2008 10:17
реестр Михаил Юрьевич Общие вопросы Delphi 9 12.02.2008 00:00
Реестр GAGARIN-NEW Свободное общение 2 06.01.2008 11:31