Лекция 6. Работа с реестром ос Windows
6.1. Структура системного реестра
Программное обеспечение становится все сложнее, а его функциональность все более гибкой и сложной. В Microsoft Windows настройка осуществляется через реестр - механизм, упрощающий хранение параметров приложений и служебных программ. Реестр - это централизованная иерархическая база данных, состоящая из нескольких файлов (для программистов, работающих с ним, он представляется как единая база данных) и обладающая следующими возможностями:
Иерархическая организация данных приложения позволяет сохранять свои параметры произвольным образом;
Поддерживает многопользовательскую работу, он разделен на две части, в одной из которых хранятся параметры локального компьютера (HKEY_LOCAL_MACHINE), а в другой — пользовательские параметры (HKEY_USERS);
Ограничение доступа к любым разделом реестра;
Хранение данные разных типов, в том числе двоичных DWORD, строк и мультистрок.
Реестр - ограниченный совместно используемый системный ресурс, в pаботе с которым нужно придерживаться определенных правил этикета (или соглашений), многие из них накладываются самой системой.
В основе системного реестра лежит иерархия разделов (ключей) и значений. Разделы (ключи реестра) могут состоять из произвольного числа подразделов (подключей) значений. В свою очередь подразделы обладают такими же правами и могут включать в себя сколько угодно значений и новых подразделов. Названия разделов одного уровня должны различаться, кроме того, в них не должна входить обратная косая черта. Для просмотра реестра можно использовать стандартную программу regedit.exe. Она позволяет просматривать и модифицировать ключи и их значения.
Реестр имеет логическую и физическую структуру. Программисты имеют дело с логической структурой, в рамках которой корневые разделы реестра, определяющие верхушки деревьев реестра, считаются корневыми каталогами подобно дискам А: или С:.
Физически, реестр состоит из нескольких расположенных на жестком диске пользователя файлов. Файл, в котором хранится нужный программисту раздел реестра, определяет ОС, она же и осуществляет доступ к нужному файлу.
Реестр Windows 2000 состоит из пяти предопределенных корневых разделов и одного предопределенного — для хранения данных о производительности системы (HKEY_PERFORMANCE_DATA). Этот предопределенный раздел содержит данные о производительности, передаваемые ему системой, службами и приложениями. Он не содержит определенных физических значений, скорее наоборот, функции реестра предоставляют метод динамического получения информации о производительности системы. Доступа к нему из программы Regedit нет. Раздел HKEY_DYN_DATA указывает на ту часть раздела HKEY_LOCAL_ MACHINE, которая нужна для Plug & Play устройств. При добавлении или удалении устройств из системы этот раздел изменяется.
При рассмотрении реестра рассматриваются разделы, указанные в таблице 6.1, как основные разделы реестра.
Все подразделы реестра входят в раздел HKEY_LOCAL_MACHINE либо HKEY_USERS. Такая структура реестра обусловлена необходимостью хранения информации о параметрах, специфичных для компьютера, с одной стороны, и о параметрах, специфичных для пользователя, с другой. Остальные три предопределенных раздела — это виртуальные закладки для частей разделов HKEY_LOCAL_MACHINE и HKEY_USERS. Так, данные подраздела HKEY_LOCAL_MACHINE\Software\Classes можно обнаружить в разделе HKEY_CLASSES_ROOT.
Как и названия разделов, названия переменных одного подраздела должны различаться. Единственное исключение из этого правила — значение по умолчанию (default), не имеющее названия. Наличие значений, в том числе и значения по умолчанию, в разделе необязательно, так что в нем могут содержаться несколько, только одно или вообще ни одного значения.
Таблица 6.1. Предопределенные разделы системного реестра Windows 2000
Название раздела |
Описание |
HKEY_LOCAL_MACHINE |
Содержит информацию конкретного компьютера, в том числе об установленном аппаратном и программном обеспечении, а также настройки. Эти данные являются общими для всех работающих за данным ПК пользователей. |
HKEY_USERS
|
Набор данных, применяемых при работе определенного пользователя. Этот раздел содержит информацию для пользователя по умолчанию и для пользователя с загруженным в данный момент профилем. |
HKEY_CURRENT_USER
|
Определенная системой закладка, или псевдоним, для раздела HKEY_USERS, динамически указывающая на информацию реестра о пользователе, связанном с вызывающим потоком. Существуют специальные правила, связанные с пользователями вызывающих потоков, влияющими на работу служб связанных с этими задачами. |
HKEY_CLASSES_ROOT
|
Включает все типы соответствий файлов, а также информацию об OLE и ярлыках и содержит сведения о зарегистрированных СОМ-компонентах и связанных с оболочкой (shell) ассоциациях. |
HKEY_CURRENT_CONFIG
|
Определенная системой закладка, или псевдоним, для HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current название которого соответствует имени пользователя, работающего в данный момент. Здесь хранятся сведения о конфигурации оборудования. |