|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вопрос по считыванию данных из реестра
Есть значение dword. Довольно большое. Если считывать readinteger то не катит потому что он читает в 16 системе и выдает ерунду. Как считать это же значение в десятичной системе или считать в 16 и преобразовать в десятичную?
|
#2
|
||||
|
||||
Вот мой пример чтения DWORD из реестра. У меня считалось без проблем.
Код:
uses Registry; // Прочитать REG_DWORD procedure TForm1.Button1Click(Sender: TObject); var Reg: TRegistry; RegKey: DWORD; Key: string; begin Reg := TRegistry.Create; try Reg.RootKey := HKLM; Key := 'Место откуда читать DWORD'; if Reg.OpenKeyReadOnly(Key) then begin if Reg.ValueExists('Значение DWORD') then begin RegKey := Reg.ReadInteger('Значение DWORD'); Reg.CloseKey; ShowMessage(IntToStr(RegKey)); end; end; finally Reg.Free end; end; |
#3
|
||||
|
||||
А ReadBinaryData не подойдет?
THE CRACKER IS OUT THERE |
#4
|
|||
|
|||
:)
2 moo2k я ж сказал этим способом число 4000 не считаешь. 2 4kusNick пример использования есть? просто мне всегда хватало ReadInteger. Щас практика началась поэтому пока забросил это дело. Но все же интересно
|
#5
|
||||
|
||||
Вообще-то ты путаешь DWORD и Integer; Это два разных типа. Мой пример все-таки подходит. В примере ясно видно же, что я присваю переменной RegKey тип DWORD, а не Integer.
|
#6
|
||||
|
||||
Цитата:
Все правильно, если DWORD будет больше чем 4 байта числа со знаком то не полезет в интегер. У интегера старший бит - значение знака. А у ДВОРД все биты значащие. --------------------------------------------- Программирование - не профессия, а стиль жизни |
#7
|
|||
|
|||
:)
Да точно. Спросонья не разглядел что тип dword. Пытался в интегер пихнуть. Все работает. Спасиба
|