Системный реестр. Архитектура системного реестра

Страницы работы

Содержание работы

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

Системный реестр представляет собой базу данных, в которой хранится информация о конфигурации системы в среде Win32. Системный реестр является более удачным решением по сравнению с файлами инициализации, применявшимися в Windows 3.x., поскольку в данном случае вся информация о конфигурации системы хранится в единственном файле. Кроме того, такой подход дает возможность хранить несколько типов данных, обладает преимуществом поиска данных и упрощает редактирование данных с помощью редактора системного реестра.

Системный реестр обеспечивает также работу в сети и дает отдельным пользователям возможность сохранять выбранные ими глобальные параметры, благодаря чему в приложениях появляется возможность специальной настройки пользовательского интерфейса для конкретного пользователя. Данные системного реестра могут храниться централизовано и импортироваться в системный реестр рабочей станции во время регистрации пользователя в системе. Совершенно аналогично, системный администратор имеет удаленный доступ к системным реестрам рабочих станций для разрешения возникших конфликтов.

Используя системный реестр, можно связать определенные действия командного процессора (в частности, open и print) с соответствующими типами документов. А когда пользователь выполняет щелчок правой кнопкой мыши на пиктограмме документа в проводнике Windows Explorer, то в этом случае появляется контекстное меню, в котором перечислены определенные программные действия. К другим важным примерам применения системного реестра относятся OLE-регистрация, поддержка локализованных версий приложений, применение сетевых протоколов и связывания, а также поддержка автоматической настройки приложений.

Архитектура системного реестра

Один из способов исследования содержимого системного реестра связан с применением REGEDIT, утилиты компании Microsoft, которая обеспечивает возможность изменения содержимого системного реестра, а также соединения с системными реестрами других компьютеров. Формат отображения данных в системном реестре весьма похож на то, как папки и документы отображаются в проводнике Windows Explorer. Отчасти это связано с тем, что структура системного реестра подобна структуре каталогов. Если прибегнуть к терминологии, используемой в системном реестре, то эквивалентом папки или каталога здесь является ключ (key), а документу или файлу соответствует значение (value). Ключ представляет собой совокупность подклю-чей и значений. (Ключи, которые содержатся в других ключах, называются подклю-чами данного ключа.)

На рис. 19.1 показана взаимосвязь между ключами и значениями в системном реестре. В данном примере у корневого ключа имеется одно значение и два подключа

Subkeyl и Subkey2. Далее, у подключа Subkeyl имеется одно значение, а у подключа Subkey2 — два значения и один подключ. При этом у подключа, который содержится в подключе Subkey2, может быть любое число значений или подключен.

Рисунок 19.1

Взаимосвязь между отдельными компонентами системного реестра.

Данные конфигурации приложения представляют собой определенный набор ключей и значений. Например, во многих приложениях сохраняются имена последних открывавшихся документов, благодаря чему пользователь может сделать соответствующий выбор из списка последних использовавшихся документов. Один из способов представления подобной информации в системном реестре состоит в применении единственного ключа под названием LastDocuments для хранения имен файлов нескольких последних открывавшихся документов в виде значений этого ключа. В таком случае ключ LastDocuments весьма похож на массив значений имен файлов. Другой способ представления данных в системном реестре состоит в использовании ключа LastDocuments и подключа для каждого сохраняемого документа. В последнем случае у каждого из под-ключей будет одно значение — имя файла документа. А у ключа LastDocuments вообще не будет значений. Единственное его предназначение состоит в том, чтобы сгруппировать вместе остальные ключи документов.

Размещение данных в системном реестре

Для создания ключей в системном реестре используется функция RegCreateKeyEx При этом система создаст структуру, необходимую для ввода ключа, в том числе и любые промежуточные ключи, которых еще нет в системном реестре. В примере, приведенном в листинге 19.1, показано, каким образом в системном реестре создается ключ используемой по умолчанию пиктограммы для нового типа документа с расширением .MDC и связанного с ним типа документа MyDoc.

Листинг 19.1 Создание ключа системного реестра_______________________

HKEY hKeyExt,  hKeyApp; DWORD         dwDisposition;

// Создать ключ расширения. //..........................

RegCreateKeyEx(  HKEY_CLASSES_ROOT,   ".MDC",   0, "", REG_OPTION_NON_VOLATILK, KEY_ALL_ACCESS, KULL,   ShKeyExt,   SdwDisposition  ) ;

Похожие материалы

Информация о работе