|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
Большое спасибо)
|