![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Как можно прочитать DigitalProductID Windows (имеющий бинарное значение) из реестра без использования TRegistry? Пытался сам замутить не получилось...
![]() |
|
#2
|
||||
|
||||
|
WIN API функции доступа к реестру.
|
|
#3
|
||||
|
||||
|
Цитата:
Если можно, то код считавания..... |
|
#4
|
||||
|
||||
|
Код:
var
key : HKEY;
data : Byte;
vtype : DWord;
size : DWord;
begin
if RegOpenKey(HKEY_LOCAL_MACHINE, 'адрес_нужного_раздела', key) = ERROR_SUCCESS then begin
RegQueryValueEx(key, 'имя_значения', nil, @vtype, @data, @size);
if (vtype = REG_BINARY) and (size > 0) then
ShowMessage(IntToStr(data));
RegCloseKey(key)
end;
end; |
|
#5
|
||||
|
||||
|
За это, конечно спасибо, но при чтении DigitalProductId Windows у меня вылезает ошибка. Этот ID нужно еще расшифровать. Так вот как это сделать?
|
|
#6
|
||||
|
||||
|
Код:
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; пусть подскажут. |
|
#7
|
||||
|
||||
|
zip000, спасибо за помощь. А с расшифровкой я как нибудь разберусь.
![]() |