var
reg: TRegistry;
DataType: TRegDataType;
DataInfo: TRegDataInfo;
Value: string;
begin
reg := TRegistry.Create;
try
if reg.OpenKeyReadOnly('\Software\Somewhere') then
begin
if reg.ValueExists('MeinWert') then
begin
{ reg.GetDataInfo('MeinWert', DataInfo)
DataType := DataInfo.RegData;
// oder so wenn nur der Datentyp interessiert }
DataType := reg.GetDataType('MeinWert');
case DataType of
rdUnknown: raise
Exception.Create('Unbekannter Datentyp');
rdString, rdExpandString: Value := reg.ReadString('MeinWert');
rdInteger: Value := IntToStr(reg.ReadInteger('MeinWert'));
{ rdBinary:
begin
GetMem(Buffer, DataInfo.DataSize);
reg.ReadBinaryData('MeinWert', Buffer^, DataInfo.DataSize);
...
FreeMem(Buffer);
end;}
end;
end;
reg.CloseKey; // wird auch von reg.Free gemacht, aber der Ordnung zuliebe
end;
finally
reg.Free;
end;
end;