Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск по реестру, сканирование реестра [D7, WinXP]


DeScriptor ©   (2004-10-05 22:27:00) 

Необходимо устроить сабж, т.е. поиск ключа и/или значения в реестре. Как это реализовать?


DeScriptor   (2004-10-09 16:31:00) [1]

>>GuAV ©   (07.10.04 23:29) [3]
>> with tregistry.Create do
>> try
>>   //RootKey:=HKEY_LOCAL_MACHINE
>>   OpenKey('', false);
>>   GetKeyNames(Memo1.Lines);
>>   CloseKey;
>> finally
>>   free;
>> end

Вот это конгениально!!!! Именно то, что мне и нужно было! И так просто!
Огромущщее спасибо!!!


cerber1   (2004-10-09 13:35:00) [2]

2 DeScriptor

Читайте ХЕЛП:
 
The RegOpenKeyEx function opens the specified key.
LONG RegOpenKeyEx(

   HKEY hKey, // handle of open key
   LPCTSTR lpSubKey, // address of name of subkey to open
   DWORD ulOptions, // reserved
   REGSAM samDesired, // security access mask
   PHKEY phkResult  // address of handle of open key
  );


Parameters

hKey

Identifies a currently open key or any of the following predefined reserved handle values:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

lpSubKey

Points to a null-terminated string containing the name of the subkey to open. If this parameter is NULL or a pointer to an empty string, the function will open a new handle of the key identified by the hKey parameter. In this case, the function will not close the handles previously opened....


GuAV   (2004-10-07 23:29:00) [3]

 with tregistry.Create do
 try
   //RootKey:=HKEY_LOCAL_MACHINE
   OpenKey('', false);
   GetKeyNames(Memo1.Lines);
   CloseKey;
 finally
   free;
 end


DeScriptor   (2004-10-07 22:48:00) [4]

Ну, эт я и сам догадался. Вопрос в том, как именно. Дело в том, что никаких явных способов получить, например, содержимое ключа HKEY_CURRENT_USER я не знаю. GetKeyNames не срабатывает, т.к. не открыт ни один ключ, открыть ключ HKEY_CURRENT_USER тоже не получается, т.к. такого ключа нет. Соответственно, ни о каком переборе не может быть и речи. А WinAPI-функция RegSaveKey отчего-то создает пустой файл и ничего туда не сохраняет, хотя я ей задаю правильные параметры.


GuAV   (2004-10-05 23:15:00) [5]

Перебором и рекурсией. Используя TRegistry или используя функции winapi для работы с реестром напрямую.


Наверх

Титульная страница Поиск, карта сайта Написать письмо