Системный реестр
Системный реестр представляет собой базу данных, в которой хранится информация о конфигурации системы в среде 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 ) ;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.