Delphi 6 программирование


Системный реестр Windows



20.5.2. Системный реестр Windows

Системный реестр Windows - это общедоступная база данных, хранящая индивидуальную для каждого компьютера настроечную информацию, используемую программным обеспечением. Данные в реестре упорядочены в древовидные структуры, состоящие из узлов, которые в терминологии Windows называются ключами. Каждый ключ имеет один родительский ключ, один или несколько дочерних ключей и ноль или несколько параметров типа <имя_парамет-ра>=<значение>, Исключение представляют, корневые ключи (они не имеют родителей) и дочерние ключи низшего уровня (они не имеют дочерних ключей). По умолчанию несистемное программное обеспечение регистрирует свою информацию в корневом ключе с именем hkey_current_user. Для просмотра/коррекции системного реестра используется системная утилита regedit.exe. Системному реестру Windows соответствует объект класса TRegistry.

Методы класса TRegistry:





procedure CioseKey; Записывает информацию в ключ и закрывает его
constructor Create; Создает объект класса TRegistry. Устанавливает в RootKey значение hkeycurrent - user и в LazyWrite значение True
function CreateKey(const Key:

String): Boolean;

Создает ключ с именем Key. Если имя начинается символом “\”, ключ является подключом корневого ключа, в противном случае - подключом текущего ключа
function DeleteKey(const Key:

String): Boolean;

Удаляет ключ Key и возвращает True, если операция прошла успешно
function DeleteValue(const Name:

String): Boolean;

В текущем узле удаляет значение параметра с именем Name
destructor Destroy; Уничтожает объект TRegistry
TRegDataType == (rdUnknown,

rdString, rdExpandString, rdlnteger, rdBinary) ;

TRegDataInfo = record

RegData: TRegDataType;

DataSize: Integers-

end;

Возвращает в параметре value значение, определяющее тип данных для параметра сименем valueName текущего ключа: rdunknown - неизвестный тип; rdString - стро

ковый тип;rdExpandString - значением

является строка, описывающая переменную окружения Windows, например “%РАТН%”;

function GetDataInfo(const ValueName: String; var Value: TRegDataInfo) : Boolean; rdlnteger - целочисленный тип; rdBinary - двоичный тип (набор битов)
function GetDataSize(const Valu-

eName: String): Integer;

Возвращает длину значения параметра с

именем valueName в текущем узле

TRegDataType = (rdUnknown, rdString, rdExpandString, rdlnteger, rdBinary) ;

function GetDataType(const ValueName: String): TRegDataType;

Возвращает значение, определяющее тип данных для параметра с именем ValueMame текущего ключа (см. метод GetDataInfo)
TRegKeyInfo = record

NumSubKeys: Integer;

MaxSubKeyLen: Integer;

NumValues: Integer;

MaxValueLen: Integer;

MaxDataLen: Integer;

FileTime: TFileTime;

end;

function GetKeyInfo(var Value:

TRegKeyInfo): Boolean;

Возвращает в параметре Value информацию о текущем узле: - NumSubKeys количество дочерних узлов;MaxSubKeyLen - максимальная длина имени дочернего узла; NumValues - количество параметров; Мах-valueben - максимальная длина имени параметра; MaxDataLen - максимальна длина параметра; FileTime - время последнего обновления ключа
procedure GetKeyNames(Strings:TStrings) ; Возвращает в параметре strings имена

всех дочерних ключей

procedure GetValueNames(Strings:TStrings) ; Возвращает в параметре Strings имена

всех параметров

function HasSubKeys: Boolean; Возвращает True, если ключ имеет дочерние ключи
function KeyExists(const Key:

String): Boolean;

Возвращает True, если существует ключ с именем Key
function LoadKey(const Key, File-

Name: String): Boolean;

Создает ключ с именем Key как дочерний ключ корневого ключа и загружает из файла FileName его содержимое (параметры и все подключи)
procedure MoveKey(const OldName,

NewName: String; Delete: Boolean) ;

Копирует или перемещает ключ OldName в ключ NewName: Delete -содержит True для перемещения
function OpenKey(const Key:

String; CanCreate: Boolean): Boolean;

Открывает существующий или создает и открывает новый ключ с именем Key и воз вращает True, если операция прошла успешно. CanCreate разрешает/запрещает создание ключа, если он не существует
function ReadBinaryData(const

Name: String; var Buffer; BufSize: Integer): Integer;

Копирует не более Bufsize байт в переменную Buffer из параметра с именем Name.

Возвращает количество действительно скопированных байтов

function ReadXXXX(const Name:

String): YYYY;

Возвращает значение параметра типа yyyy с именем Name
function RegistryConnect(const

UNCName: String): Boolean-

Разрешает удаленному компьютеру ONCName доступ к системному реестру вашего компьютера
procedure RenameValue(const Old Name, NewName: Strings; Переименовывает параметр OldName
function ReplaceKey(const Key

FileName, Back.gif" >



Содержание раздела