Код:
var
key : HKEY;
data : Pointer;
vtype : DWord;
size : DWord;
i : Integer;
b : Byte;
s : String;
begin
GetMem(data, $A3);
if RegOpenKey(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', key) = ERROR_SUCCESS then begin
RegQueryValueEx(key, 'DigitalProductId', nil, @vtype, data, @size);
if (vtype = REG_BINARY) and (size > 0) then begin
s := '';
for i := 0 to $A3 do begin
b := PByte(Integer(data) + i)^;
s := s + IntToHex(b, 2);
end;
end;
RegCloseKey(key)
end;
FreeMem(data, $A3);
Caption := s;
end;
Это должно работать, в заголовок формы выводятся данные из реестра в 16ричном виде, как расшифровать - это я уже хз, напишите в Майкрософт

пусть подскажут.