![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;
Так я извращался, т.к. не известно, есть ли такой ключ и какого он типа.