![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день)
Нужна помощь с записью и чтением бинарных данных в реестре. Например, как работать с функцией Не добавлять "Ярлык для" при создании ярлыков. В Интернете искал, в справке Delfi читал - не хватило для понятия ![]() |
|
#2
|
|||
|
|||
|
Для этих целей можно использовать объект TRegIniFile из модуля Registry. У него, в частности, имеются методы ReadBinaryData и WriteBinaryData.
Вот так можно прочитать значение ключа, ответственного за эту добавку "Ярлык для"... Код:
uses Registry; // и прочее...
............................
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegIniFile;
Buf: array[0..4] of Byte;
begin
FillChar(Buf, SizeOf(Buf), 0);
Reg := TRegIniFile.Create('Software');
try
Reg.OpenKey('Microsoft', True);
Reg.OpenKey('Windows', True);
Reg.OpenKey('CurrentVersion', True);
Reg.OpenKey('Explorer', True);
ShowMessage(InttoStr(Reg.ReadBinaryData('Link', Buf, SizeOf(Buf)))); // сколько байт прочитали?
Reg.CloseKey;
finally
Reg.Free;
end;
end;Последний раз редактировалось Nyctos Kasignete, 23.05.2009 в 17:24. |
|
#3
|
|||
|
|||
|
Отсюда понятно, сколько байт мы прочли, а как распознать содержание: 00 00 00 00 или 01 00 00 00?
|
|
#4
|
|||
|
|||
|
Так ведь в буфер Buf значения мы для чего считывали? В него и заносятся эти байты. Т.е., если вы прочитаете значение Buf[0], то в нем найдете значение первого считанного байта (например, 30). Buf[1] — значение второго байта и т.д. Кстати, для этого случая длину массива Buf можно взять равной 4, т.е. Buf: array[0..3] of Byte;
|
|
#5
|
|||
|
|||
|
Большое спасибо)
|