Hola martonbarbosa.
No estoy seguro de haber entendido lo que buscas... Según creo interpretar, deseas obtener el valor de determinada clave.
Código Delphi
[-]
function GetKeyValue(const aRootKey: HKEY; const aKey, aName: string): string;
var
rd: TRegDataInfo;
size: Cardinal;
st: string;
begin
with TRegistry.Create do
try
RootKey:= aRootKey;
st := '';
if OpenKey(aKey, False) then
begin
if GetDataInfo(aName, rd) then
case rd.RegData of
rdUnknown: Result := '';
rdInteger: Result := IntToStr(ReadInteger(aName));
rdString , rdExpandString: Result := ReadString(aName);
rdBinary : begin
size:= GetDataSize(aName);
SetLength(st, size);
ReadBinaryData(aName, PChar(st)^, size);
Result:= st;
end;
end;
CloseKey;
end
finally
Free;
end;
end;
Ejemplo de llamada:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:= GetKeyValue(HKEY_LOCAL_MACHINE,
'SOFTWARE\Microsoft\Windows NT\CurrentVersion',
'ProductId');
end;
En el caso de un tipo
rdBinary al convertirlo a string, con seguridad obtendrás caracteres ilegibles.
Saludos.