Шаг 12 - Реестр Windows. Обзор

Всем знаком реестр Windows. Этакая общая база для операционки и ее приложений. В принципе большинство программистов копались с реестром, у некоторых нормально обошлось, у других не очень. Но это неважно. Главное, всегда делать резервную копию. Вот о них мы и поговорим.

В общем случае пользователь редактирует реестр с помощью утилиты regedit. Она запускается легче всего через Пуск-Выполнить..., где в окне впечатывается regedit. После этого Вашему взору должно предстать что-то вроде этого:

gif/12_1.gif (5705 b)

В левой части иерархическая структура реестра - разделы, подразделы. Как видно, он имеет иерархическую структуру. В принципе это похоже на окно проводника. В левой части окна видны параметры. У каждого раздела есть параметр по имени "По умолчанию" или в английской версии "Default". Я, когда в первый раз это услышал, удивился - как же программы смогут считывать его значение, если в разноязычных версиях у него разные имена? Однако выяснилось, что это регедит как бы облегчает пользователям жизнь - настоящее имя параметра "". На самом деле интернационально ;).

В реестре есть шесть главных разделов - HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOACAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG, HKEY_DYN_DATA. Я их юуду называть сокращенно, например HKLM означает HKEY_LOCAL_MACHINE. HKCR содержит информацию в основном о файлах, документах OLE и прочем. В нем хранятся такие полезные вещи, как информация о файле по расширению - иконка по умолчанию, контекстное меню, команда выполнения по двойному щелчку.

HKCU хранит информацию о текущем пользователе. Если не ошибаюсь, этот раздел строится динамически по загрузке Windows. В нем, как и в HKLM и HKU, есть раздел Software/CLASSES, содержащий практически ту же информацию, что и HKCR. Раздел HKLM, как и положено по названию, хранит информацию об установленных программах и его настройках.

HKU - информация, относящаяся ко всем пользователям. Несмотря на, казалось бы, ответственную функцию, в его раздел .Default обычно кидают программы всякую дрянь, которую в другие места бросить стыдно.

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

HKDD - раздел, который строится динамически по мере загрузки Windows. В NT 2000 через него можно было что-то поменять, а в 9x в нем хранятся в основном PnP настройки и все в таком роде. Этот раздел частично создается из других.

В общем-то это и есть иерархия знаменитого реестра. В C++Builder довольно унифицированная система управления реестром, через специальный класс TRegistry. Работа с реестром в основном заключается в считывании определеннных параметров и их записи и создания и удаления разделов. Этот класс все это позволяет. Нужно сказать, что значения параметров в реестре могут быть строкового, двоичного и типа double word. Последний эквивадентен int.

Класс TRegistry будет подробно рассмотрен в следующем Шаге.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Аванесов Самвел - 5.11.2001