Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Ошибка при чтении двочных данных из реестра   Найти похожие ветки 

 
пионер   (2004-10-11 20:15) [0]

Подскажите, почему тут возникает EAccessViolation ?


const
   RegBorland:String =
   "\Software\Borland\Delphi\6.0";
var
 Reg:TRegistry;
 Buf:array of Byte;
 BufSize:Integer;

begin

try

Reg := TRegistry.Create;
Reg.RootKey :=HKEY_CURRENT_USER;
Reg.OpenKeyReadOnly(RegBorland);
BufSize := Reg.GetDataSize("LM");

if BufSize <> -1 then
 SetLength(Buf,BufSize)
else
 Exit;

Reg.ReadBinaryData("LM",Buf,BufSize);

finally
 Reg.CloseKey;
 Reg.Free;
end;
end;


 
begin...end ©   (2004-10-11 20:20) [1]

Где "тут"?


 
пионер   (2004-10-11 20:29) [2]

begin...end ©   (11.10.04 20:20) [1]
Где "тут"?


Reg.ReadBinaryData("LM",Buf,BufSize);

По-моему все правильно...


 
begin...end ©   (2004-10-11 20:31) [3]

И вообще - что это ты там собрался сделать? Очередной кулхацкер?

Для Delphi 7 я не вижу параметра LM в реестре, есть LMKEY и LMLIC, но это  строковые параметры, так что и читать их надо соответственно.

Из описания метода ReadBinaryData:

If the Registry entry contains a known type (such as a string), ReadBinaryData raises an exception.


 
пионер   (2004-10-11 20:36) [4]

LM - двоичный и в Delphi 6 он есть. Я его привел в качестве примера. Ошибка возникает при чтении любого двочного параметра. почему?


 
begin...end ©   (2004-10-11 20:41) [5]

А так:

Reg.ReadBinaryData("LM", Buf[0], BufSize);

?


 
пионер   (2004-10-11 20:49) [6]

Точно! Спасибо! :)


 
begin...end ©   (2004-10-11 20:53) [7]

И ещё:
1. Reg := TRegistry.Create поставь перед try
2. Не забудь освободить память из-под Buf

Удачи!



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
8-1091010710
СтёпКин
2004-07-28 14:31
2004.10.24
Запись в JPG при видеозахвате


3-1095599453
Dio
2004-09-19 17:10
2004.10.24
Установка проекта


6-1092667459
AlexanderVas
2004-08-16 18:44
2004.10.24
Вопрос по компоненту Indy.


3-1095927162
Галинка
2004-09-23 12:12
2004.10.24
Как добавить столбцы в DBGridat Runtime?


14-1097041840
9k33
2004-10-06 09:50
2004.10.24
Кодерам и заказчикам