|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Чтение Windows Product ID
Как можно прочитать DigitalProductID Windows (имеющий бинарное значение) из реестра без использования TRegistry? Пытался сам замутить не получилось...
Программирование - это искусство и наш смысл жизни. |
#2
|
||||
|
||||
WIN API функции доступа к реестру.
Не профи, но и не чайник . D6 - лучше не придумали. Пока. |
#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; Не профи, но и не чайник . D6 - лучше не придумали. Пока. |
#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; Не профи, но и не чайник . D6 - лучше не придумали. Пока. |
#7
|
||||
|
||||
zip000, спасибо за помощь. А с расшифровкой я как нибудь разберусь.
Программирование - это искусство и наш смысл жизни. |