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

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

Как получить значения ключей ветки реестра? [D7, XP]


Gloomer ©   (2006-10-13 17:02:00) 

Почему следующий код выдает пустой список?


 ListBox1.Clear;
 reg:=TRegistry.Create(KEY_READ);
try
 if Reg.OpenKey('\Software\1C\1Cv7\7.7\Titles', false) then
   begin
    reg.GetKeyNames(ListBox1.Items);
//   reg.GetValueNames(ListBox1.Items);
    reg.CloseKey;
   end;
finally
 reg.Free;
end;

Что я делаю не так? Если раскоментировать строку, то список значений заполняется нормально.


Gloomer   (2006-10-13 18:17:00) [1]

Прошу прощения - все работает, просто подключей действительно нет :-)
Просто тяжелый день - патница 13-е  :-)))


Gloomer   (2006-10-13 18:01:00) [2]

В модуле Registry текст процедур GetValueNames и GetKeyNames практичести идентичен.
после выполнения первых двух строк (одинаковых для обеих процедур)
Strings.Clear;
if GetKeyInfo(Info) then
...
в первом случае Info.NumSubKeys равно количеству ключей, а во втором - 0
Почему???


Gloomer   (2006-10-13 17:41:00) [3]

[1] 1C именно в HKEY_CURRENT_USER и хранит записи об ИБ...
[2] может и лишний, но проблемы это не решает
к тому же ведь GetValueNames в данном контексте работает, а GetKeyNames - нет


han_malign   (2006-10-13 17:12:00) [4]

и '\' в начале лишний, по моему...


han_malign   (2006-10-13 17:09:00) [5]

By default, RootKeyis set to HKEY_CURRENT_USERwhen the registry object is created.


Наверх

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