Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ReadBinary... [D5, Win95/98]


Schummi ©   (2002-07-30 08:45:00) 

Снова доброго времени суток, мастера! Подскажите, как прочитать из реестра занчение типа rdBinary? Размер буфера определить можно, но как у Buffer быть? У меня постоянно ошибка выдаётся: "Faild to get data for "XXX""! Thanks!


Schummi   (2002-08-14 09:55:00) [1]

2TTCustomDelphiMaster Понимаешь, буффером может быть и строка и массив и ... И вот неизвестно, что именно записано в этой Value: или строка или массив или ... Понимаешь? А так спасибо!


TTCustomDelphiMaster   (2002-08-10 10:51:00) [2]


> Schummi © (10.08.02 08:10)
> но как у Buffer быть?

Не понял что имеется ввиду. Ну да ладно вот рабочий код, может там найдешь ответ на свой вопрос.

procedure TForm1.Button3Click(Sender: TObject);
var
F: Tregistry;
buf: array of byte;
i: integer;
s: string;
begin
F := TRegistry.Create;
F.RootKey := HKEY_LOCAL_MACHINE;
F.OpenKey("SOFTWARE\ACD Systems\ACDInTouch", False);
If F.ValueExists("InTouchSettings") Then
If F.GetDataType("InTouchSettings") = rdBinary Then
begin
SetLength(buf, F.GetDataSize("InTouchSettings"));
F.ReadBinaryData("InTouchSettings", buf[0], Length(buf));
s := "";
for i:=0 to Length(buf)-1 do
begin
if (i mod 16)=0 then
s := s + #13#10 + inttohex(i, 4) + " ";
if (i mod 8)=0 then
s := s + " ";
s := s + inttohex(buf[i], 2) + " ";
end;
ShowMessage(s);
end;
F.Free;
end;


Набережных С.   (2002-08-10 09:08:00) [3]


> Русским. Языком. Говорю. Размер буфера определить можно,
> но как у Buffer быть?

Тебя обманули. Это не русский язык.


Schummi   (2002-08-10 08:10:00) [4]

2TTCustomDelphiMaster
Русским. Языком. Говорю. Размер буфера определить можно, но как у Buffer быть?


Schummi   (2002-08-10 08:10:00) [5]

2TTCustomDelphiMaster
Русским. Языком. Говорю. Размер буфера определить можно, но как у Buffer быть?


TTCustomDelphiMaster   (2002-08-03 09:06:00) [6]


> Schummi © (01.08.02 09:59)
> Тут не извесно, какой буфер!


Если ты о размере буфера, то посмотри TRegistry.GetDataSize


Schummi   (2002-08-03 08:00:00) [7]

Только не молчите, пожалуйста!


Schummi   (2002-08-01 09:59:00) [8]

Тут не извесно, какой буфер!


Schummi   (2002-07-31 08:11:00) [9]

Спасибо тебе, буду пробовать!


MikeZ   (2002-07-30 11:03:00) [10]

Пример:

Procedure TForm1.Button1Click(Sender : TObject);
Var
F : TRegistry;
ProxyOn : Integer;
begin
F := TRegistry.Create;
F.RootKey := HKEY_CURRENT_USER;
F.OpenKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings", False);
If F.ValueExists("ProxyEnable") Then
Try
If F.GetDataType("ProxyEnable") = rdBinary Then
F.ReadBinaryData("ProxyEnable", ProxyOn, SizeOf(ProxyOn))
Else // rdInteger
ProxyOn := F.ReadInteger("ProxyEnable");
Except
End;
F.Free;
end;


Так я извращался, т.к. не известно, есть ли такой ключ и какого он типа.


Наверх

Титульная страница Поиск, карта сайта Написать письмо