TRegistry.GetKeyNames не срабатываeт на ветке реестра

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

TRegistry.GetKeyNames не срабатываeт на ветке реестра

Сообщение CynicRus » 11.08.2015 22:18:39

Добрый день господа. Возникла следующая проблема: не могу прочитать значения ключей из определенной ветки реестра.
Объявляю ветку константой:
Код: Выделить всё
const
MyKey = '\SOFTWARE\Microsoft\Windows Portable Devices\Devices'


И делаю следующее:
Код: Выделить всё
var
  Str: TStringList;
  Reg: TRegistry;
begin
  Str := TStringList.Create;
  Reg := TRegistry.Create;
  Reg.RootKey:=HKEY_LOCAL_MACHINE;
  try
    if Reg.OpenKeyReadOnly(MyKey) then
    begin
      Reg.GetKeyNames(Str);
      Str.SaveToFile('C:\Devices.txt');
    end;
  finally
    Reg.CloseKey;
    Str.Free;
  end;
end;

и в Str - Count = 0. При этом, если скормить ветку \SOFTWARE\Microsoft\Windows Portable Devices - то GetKeyNames отрабатывает корректно.

Win 7 x64 Ultimate + Lazarus 1.0.14 + FPC 2.6.2

Это только у меня такой глюк, или же это глюк так сказать всея Lazarus? И главное - как бы это дело всё же считать?
CynicRus
постоялец
 
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

Re: TRegistry.GetKeyNames не срабатываeт на ветке реестра

Сообщение Ism » 12.08.2015 02:04:20

Возможно дело в слешах \ они могут както по особому обрабатываться в коде, сталкивался с подобным
Или права доступа
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: TRegistry.GetKeyNames не срабатываeт на ветке реестра

Сообщение Снег Север » 12.08.2015 07:23:23

У меня на CT 5.40 и Windows 10 Pro ваш код отработал безукоризненно.

P.S. Перепроверил - да, сборка под х64 выдает список ключей, а под х32 выдает пустой список. Что логично, поскольку х32 в 64-битной винде обращается в ветку реестра Wow6432Node, а там у меня пусто.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 228

Рейтинг@Mail.ru