Работа с реестром под Windows 8

Потребовалось получить данные из реестра (в данном случае — название ОС).

Написал следующий код:

PascalВыделить код

1
2
3
4
5
6
7
8
9
10
11

procedure DataOS;
var
  RG: TRegistry;
begin
  RG := TRegistry.Create;
  RG.RootKey:=HKEY_LOCAL_MACHINE;
  RG.OpenKey('SoftwareMicrosoftWindows NTCurrentVersion', True);
  Blnk.SelText := RG.ReadString('ProductName');
  RG.CloseKey;
  RG.Free;
end;

Но данные извлекаются только когда запускаешь программу под правами администратора — видно влияние Vista/7/8. Но глупо запрашивать у пользователя права админа для такой простой вещи, учитывая что для выполнения основной задачи такие права не нужны. Есть ли возможность получить данные каким либо другим способом в обход админских прав?