Структура реестра

Существует пять основных ветвей реестра, которые соответствуют определенному типу информации, хранящейся в реестре. Эти корневые разделы нельзя удалить, переименовать или переместить, потому что они — основа реестра:

О HKEY_CLASSES_ROOT

Эта ветвь содержит информацию о соответствии типов файлов зарегистрированным компонентам программного обеспечения (классам), используемым операционной системой и приложениями.

Вся эта ветвь — это «зеркальное отображение» ветви HKEY_L0KAL_MACHINE SOFTWAREClasses, и она способна как помочь вам, так и запутать вас. л *щ

Информация в связанной ветви существует в двойном экземпляре, доступ к ней 0* возможен в двух разных местах реестра. Это означает, что Поиск (Find) найдет ^ I «’ информацию в обоих местах реестра, а изменения в одном месте будут сразу же *’ продублированы и в другом.

О HKEY_CURRENT_USER

Эта ветвь указывает на часть корневого раздела HKEYJJSERS, соответствующую текущему пользователю. Таким образом, любое приложение может считывать и изменять настройки текущего пользователя без указания конкретного имени пользователя.

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

Настройки текущего пользователя разделены на несколько категорий: AppEvents, Control Panel, Identities, Software и System. Самая полезная из ветвей -Software, которая содержит данные для приложений, установленных на компьютере. В этом разделе и в разделе HKEY_LOCAL_MACHINESOFTWARE (мы поговорим о нем позже) можно найти все настройки ваших приложений. Большинство пользовательских настроек операционной системы находятся в HKEY_CURRENT_USER SoftwareMicrosoftWindows, как будто Windows — это еще одно приложение системы.

О HKEY_LOCAL_MACHINE

Эта ветвь содержит информацию о «железе» и программном обеспечении, установленном на компьютере, которая не связана с конкретным пользователем, то есть настройки, которые являются общими для всех пользователей системы.

Так же как и HKEY_CURRENT_USER, наибольший интерес представляет ветвь SOFTWARE. Она содержит всю информацию, необходимую для приложений, установленных на компьютере. В ветви HKEY_CURRENT_USER хранятся все пользовательские настройки (даже если у компьютера только один пользователь), например конфигурация Панели инструментов. Настройки, которые не зависят от пользователя, — папки, в которые установлены программы и списки установленных компонентов, — находятся в ветви HKEY_LOCAL_MACHINE. Чтобы найти настройки конкретного приложения, понадобится заглянуть в обе ветви, поскольку большинство производителей (даже Microsoft) не очень внимательно относятся к тому, какая именно ветвь используется для настроек.

О HKEYJJSERS

В этой ветви содержится подветвь текущего пользователя, именем которой является длинный ряд цифр:

S-1-5-21-1727987266-1036259444-725315541-500

Этот номер является идентификатором защиты, уникальным для каждого пользователя компьютера (и ваш будет отличаться от приведенного выше).

Хотя вы и можете редактировать содержание этой ветви, но лучше все-таки использовать ветвь HKEY_CURRENT_USER:

HKEY_USERSS-1-5-21-1727987266-1036259444-725315541-500

Неважно, какой пользователь подключен, HKEY_CURRENT_USER всегда связана с соответствующей частью HKEYJJSERS.

‘^v Из-за того что система Windows загружает только профиль (часть реестра)

текущего пользователя, показана будет только одна ветвь пользователя. Од-^ ^ нако существуют и другие ветвн, например .default (при входе в систему не ' был указан конкретный пользователь) и несколько других ветвей, которые не представляют интереса для большинства пользователей.

О HKEY_CURRENT_CONFIG

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

Все, что вы хотите изменить в реестре, можно сделать в разделе HKEY_CURRENTJJSER ИЛИ HKEY_LOCAL_MACHINE.

Суть реестра — его значения

Значения — это место, где хранится информация, в то время как разделы нужны для организации значений. Реестр использует восемь типов значений, соответствующих информации, которую они содержат. У каждого типа значений есть по крайней мере два имени — стандартное и символьное (приведено в круглых скобках в табл. 3.1).

Таблица 3.1. Значения параметров реестра Вид значенияЗначок, используемый в редакторе реестраМожет ли быть создано в редакторе реестра? Строковый параметр (REG_SZ)ISДа Мультисгроковый параметр (REG_MULTI_SZ)Да Расширяемый строковый параметр (REG_EXPAND_SZ)тДа Двоичный параметр (REG_BINARY)Is*Да Параметр DWORD (32 бита) (REGJ5W0RD)шДа Параметр QWORD (64 бита) (REG_QWORD)шДа Машинное слово (REGJM)RD_BIGENDIAN)шНет Список ресурсов (REG_LIST, REG_RESOURCE_ REQUIREMENTS J.IST или FULL_RESOURCE_ DESCRIPTOR)ISНет

Хотя редактор реестра и позволяет просматривать и редактировать все восемь видов значений, создавать он может только шесть самых распространенных (и самых используемых) видов. На практике вы в основном будете создавать только строковые, двоичные и DWORD-параметры.

О Строковые значения

Строковые значения содержат строки знаков, более известные как читаемый текст. Большинство значений, которые будут интересны, окажутся строковыми значениями; их легче всего редактировать, и обычно они написаны простым языком. Для редактирования строкового значения необходимо дважды щелкнуть мышью и ввести строку в текстовое поле (рис. 3.3).

строкыадга пдрлиггр*? . ' шя JhSnXi+W 1OK: [ f On ***» . j --—'"*'???1 на 'i Рис. 3.3. Редактирование строкового значения

Помимо стандартных строк существует еще два специальных строковых типа:

? REG_MULTI_SZ содержит несколько строк, разделенных нулевыми символами. Хотя редактор реестра и позволяет создавать мультистроковые переменные, невозможно ввести нулевой символ с клавиатуры. Единственный способ -скопировать и вставить его из другого приложения.

• REG_EXPAND_SZ содержит специальные переменные, в которые система Windows подставляет данные перед тем, как передать их приложению. Например, указание на звуковой файл может выглядеть так: %SystemRoot%Mediadoh. wav. Когда Windows считывает значение, она подставляет конкретный путь вместо переменной %SystemRoot%, например C:WindowsMediadoh.wav (или другой путь, в зависимости от того, где была установлена операционная система). Таким образом, передаваемое значение будет правильным при любом расположении системной папки Windows.

я

^ Убедитесь, что при работе с локализованными переменными выбран тип REG_