Рассмотрим каждый корневой раздел.
HKEY_CLASSES_ROOT
Раздел HKEY_CLASSES_ROOT включает в себя информацию о зарегистрированных в системе расширениях файлов, связи между расширениями файлов и программами, которые должны работать с данными файлами.
Также раздел содержит информацию о ActiveX-элемен тах, хранит список библиотек типов и много другой системной информации. Например, в этом разделе хранится информация о том, что при двойном щелчке на файле с расширением TXT должен запуститься Блокнот.
У данного раздела имеется псевдоним HKCR, используемый в сценариях и программах. В большинстве случаев данный раздел представляет интерес только для очень опытных программистов.
HKEY_CURRENT_USER
Раздел HKEY_CURRENT_USER содержит информацию о пользователе, работающем с Windows 7 в текущем сеансе, а также о различных настройках системы, относящихся к текущему пользователю: вид Рабочего стола, настройки экрана, принтера, параметры применяемых программ.
Псевдоним у данного раздела HKCU. Данный раздел является наиболее используемым в настройках. Большинство описываемых в этой книге параметров находится именно в данном разделе.
HKEY_LOCAL_MACHINE
Раздел HKEY_LOCAL_MACHINE хранит информацию о конфигурации компьютера (программной и аппаратной), не зависящей от конкретного пользователя. Настройки в этом разделе действительны для всех пользователей данного компьютера.
В качестве псевдонима для данного раздела используется HKLM.
Интересно отметить, что подраздел HKEY_LOCAL_MACHINE\SOFTWARE\Classes является практически полной копией корневого раздела HKEY_CLASSES_ROOT.
Данный раздел является вторым по популярности при ручных настройках. Существует множество параметров, которые работают в разделах HKLM и HKCU, но тем не менее рекомендуется менять настройки для отдельного пользователя в разделе HKCU и не трогать настройки для всех пользователей без острой необходимости.
HKEY_USERS
Раздел HKEY_USERS (псевдоним HKU) содержит информацию о профилях всех пользователей данного компьютера.
Данный раздел практически никогда не используется пользователями. Следует отметить связь данного корневого раздела с разделом HKEY_CURRENT_USER, который фактически является копией подраздела корневого раздела HKEY_USERS, хранящего сведения о текущем пользователе.
Назначение этого раздела нередко интерпретируется неправильно. Разберем его составляющие чуть подробнее. В данном разделе можно увидеть несколько подразделов определенного образца (рис. 1.3).
Рис. 1.3. Подразделы раздела HKEY_USERS
HKEY_USERS\.DEFAULT
Некоторые пользователи ошибочно считают, что раздел HKEY_USERS\.DEFAULT можно использовать для импортирования параметров HKCU, рассчитывая применить их ко всем пользователям. Возможно, что в некоторых случаях это сработает. Однако HKEY_USERS\.DEFAULT скорее относится к настройкам, регулирующим процессы до входа пользователя в систему (например, раскладка клавиатуры по умолчанию).
HKEY_USERS\S-[длинный набор цифр]
Также в разделе HKEY_USERS может находиться несколько подразделов с наборами цифр. Длинный набор цифр – это SID (идентификатор безопасности). Идентификатор безопасности присваивается каждой учетной записи, поэтому количество таких подразделов зависит от количества пользователей, когда-либо входивших в систему. Чтобы узнать, свой SID в системе, можно использовать несколько способов. Например, можно запустить утилиту командной строки whoami.exe, которая входит в состав Windows 7, с параметром /user:
whoami /user
Для выполнения этой команды сначала запустите интерпретатор командной строки командой Пуск ? Все программы ? Стандартные ? Выполнить, введя в поле Открыть появившегося окна команду cmd.exe или просто cmd. Откроется окно, в котором и нужно ввести вышеописанную команду, нажав после ее ввода клавишу Enter (рис. 1.4).
Также можно посмотреть раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList, который содержит список всех SID в виде подразделов. Просмотрите все подразделы и ищите в них параметр ProfilelmagePath. Ваш SID тот, в котором значение этого параметра совпадает с именем, под которым вы входите в систему (рис. 1.5).
Рис. 1.4. Использование командной строки Windows
Рис. 1.5. Просмотр параметра ProfileImagePath
HKEY_CURRENT_CONFIG
Корневой раздел HKEY_CURRENT_CONFIG (псевдоним HKCC) хранит информацию о настройках оборудования, которое используется компьютером в текущем сеансе работы. Он также является копией подраздела HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware-Profiles. Этот раздел практически не используется разработчиками в программах и сценариях.
Итак, мы рассмотрели все виды корневых разделов. Каждых из них имеет множество вложенных разделов (подразделов). Их количество у каждого компьютера различно. Это связано с тем, что каждый пользователь устанавливает на компьютер свои любимые программы и игры. Если установка приложения происходит через специальные установочные программы – инсталляторы (Setup.exe, Install.exe и т. п.), то в реестр добавляются новые подразделы и параметры. Позже вы на учитесь находить подобные разделы и изменять их по своему желанию.
Физическое расположение реестра
Сам реестр физически состоит из нескольких файлов, расположенных в папке %SystemRoot%\System32\Config. Часть файлов для раздела HKEY_CURRENT_USER хранится в папке %SystemRoot%\Profiles\Имя_пользователя. Данные файлы являются защищенными и не представляют практического интереса для пользователя.
Если вам пока непонятно что означает %SystemRoot% – читайте дальше – в следующем разделе мы поговорим о том, что это такое.
Типы параметров
Параметры являются второй важной частью реестра после разделов. Каждый параметр имеет свои имя, значение и тип значения. Рассмотрим наиболее часто используемые типы данных.
? REG_BINARY – двоичные данные (Binary Value) представляют собой набор двоичных данных, доступных для редактирования в шестнадцатеричном формате. Подобный тип данных используется для хранения сведений об аппаратных ресурсах.
? REG_DWORD – целое число (DWORD Value) может задаваться в двоичном, десятичном и шестнадцатеричном форматах. Это один из самых применяемых типов параметров. Очень часто он работает в качестве своеобразного переключателя: 1 – включение (True)/0 – выключение (False). В реестре Windows 7 присутствует два вида DWORD: 32-битное значение и 64-битное значение.
? REG_EXPAND_SZ – расширенная строка (Expandable String Value) используется для ссылок на файлы. Кроме произвольного текста значение параметра такого типа может включать в себя специальные переменные. Во время обработки системой они могут заменяться на определенные значения, например пути к папкам. В таком качестве часто используются следующие переменные:
• %systemroot% – путь к каталогу в котором операционная система хранит свои файлы (например, каталог C:\Windows).
• %windir% – похоже на предыдущую переменную. Ее отличие от %systemroot% заключается в том, что переменную %systemroot% переопределить нельзя, а каталог, к которому ведет переменная %windir%, можно изменить с помощью окна Переменные среды (Панель управления ? Система и безопасность ? Система ? Дополнительные параметры системы ? вкладка Дополнительно ? кнопка Переменные среды).
• %systemdrive% – заменяет собой букву системного диска (как правило, диск С:).
• %userprofile% – подставляет путь к каталогу, хранящему профиль текущего пользователя.
• %programfiles% – заменяет собой путь к папке, в которую Windows устанавливает все программы (как правило, C:\Program Files).
• %username% – подставляет имя текущего пользователя, работающего с системой.
• computername% – подставляет имя компьютера (используется при обращении к компьютеру по сети).
? REG_MULTI_SZ – многострочный текст (Multi-String Value) обычно используется для представления списков.
? REG_SZ – текстовая строка (String Value). Это один из самых распространенных типов данных в реестре.
ПРИМЕЧАНИЕ
Существует еще несколько типов данных, используемых в реестре, которые нельзя создать с помощью редактора реестра. Ресурсы этих типов создают программным способом: REG_FULL_RESOURCE_DESCRIPTOR, REG_LINK, REG_NONE, REG_RESOURCE_LIST.
Основные приемы работы с редактором реестра