Системный реестр 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" > |