Роман Клименко
Тонкости реестра Windows Vista. Трюки и эффекты
Как известно, реестр является одной из главных составных частей операционных систем семейства Windows и во многом определяет их работу. Несмотря на это многие пользователи эксплуатируют Windows, даже не подозревая о существовании системного реестра. В первую очередь это обусловлено тем, что некоторые наиболее часто применяемые пользовательские настройки доступны для редактирования за пределами реестра (например, через Панель управления). «Непродвинутый» пользователь может и не догадываться, что при изменении параметров работы мыши, клавиатуры, монитора и других устройств соответствующие изменения автоматически вносятся в системный реестр. Но следует отметить, что пользователю и не всегда нужно об этом знать, поскольку работа с реестром относится, скорее, к сфере деятельности системного администратора.
Однако для опытного пользователя не является секретом, что более тонкая настройка операционной системы и некоторых приложений производится с помощью системного реестра. При этом помимо стандартных приемов его редактирования, детально описанных в соответствующей литературе, полезно знать и уметь выполнять некоторые специфические, нестандартные операции, помогающие получить желаемый результат более простым и быстрым способом. Описанию подобных трюков и посвящена эта книга.
Помимо описания разнообразных приемов редактирования системного реестра, книга включает в себя информацию о специально разработанных утилитах, предназначенных для работы с ним. Кроме того, в гл. 6 в режиме «вопрос – ответ» кратко описаны некоторые затруднительные ситуации, которые могут возникать при работе с реестром Windows Vista, и даны рекомендации по выходу из подобных ситуаций.
От издательства
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
Глава 1
Основные понятия о реестре Windows Vista
• Группировка данных в реестре
• Типы данных, используемые в реестре
• Общие правила работы с реестром
• Использование REG-файлов
• Резервное копирование и восстановление реестра
Эффективность эксплуатации любого программного продукта во многом зависит от того, насколько грамотно и корректно была произведена его настройка. Обычно параметры настройки собраны в специальной базе данных, являющейся одним из основных компонентов программы. В операционной системе Windows такая база данных называется системным реестром, содержимое которого мы кратко рассмотрим в этой главе.
1.1. Группировка данных в реестре
Все параметры системного реестра WindowsVis ta в зависимости от их функционального назначения сгруппированы в пяти основных разделах, называемых корневыми.
Кратко остановимся на каждом из них (надо отметить, что название каждого раздела начинается с английской аббревиатуры HKEY).
• HKEY_CLASSES_ROOT – включает в себя информацию о зарегистрированных в системе типах файлов, порядке обработки файлов каждого типа, а также управлении основными настройками интерфейса (то есть содержит настройки ActiveX-объектов).
Кроме того, данный корневой раздел содержит сведения о программных пакетах MSI, которые были установлены в операционной системе, определяет список программ окна Открыть с помощью, а также хранит список интерфейсов (библиотек типов), которыми можно пользоваться при программировании под Windows.
• HKEY_CURRENT_USER – содержит информацию о пользователе, работающем с Windows Vista в текущем сеансе, а также о различных настройках системы, относящихся к текущему пользователю (вид Рабочего стола, сетевые соединения, принтеры и др.).
• HKEY_LOCAL_MACHINE – хранит информацию об аппаратной конфигурации компьютера и установленном программном обеспечении. Настройки раздела действительны для всех пользователей данного компьютера. Надо сказать, что по объему информации этот раздел является самым большим, если сравнивать с другими разделами реестра Windows Vista.
Нужно отметить тесную взаимосвязь данного корневого раздела с разделом HKEY_CLASSES_ROOT. Фактически HKEY_CLASSES_ROOT является ссылкой на ветвь реестра HKEY_LOCAL_MACHINESOFTWAREClasses.
• HKEY_USERS – включает в себя информацию обо всех пользователях данного компьютера.
Следует отметить тесную взаимосвязь данного корневого раздела с разделом HKEY_CURRENT_USER, который фактически является ссылкой на подраздел корневого раздела HKEY_USERS, хранящий сведения о текущем пользователе.
• HKEY_CURRENT_CONFIG – хранит информацию о настройках оборудования, которое используется локальным компьютером в текущем сеансе работы.
Надо сказать, что данный корневой раздел является ссылкой на подраздел реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetHardware Profiles.
В целом структура реестра представлена в иерархическом порядке: каждый из перечисленных разделов имеет ряд подчиненных уровней иерархии, нижней ступенью которой являются параметры настройки системного реестра.
Примером иерархии можно считать указанный выше подраздел HKEY_LOCAL_MACHINESYSTEMCurrentControlSetHardware Profiles. Он начинается с корневого раздела HKEY_LOCAL_MACHINE. Подраздел SYSTEM находится в корневом разделе HKEY_LOCAL_MACHINE и является подчиненным ему. Подраздел CurrentControlSet находится в подразделе SYSTEM и т. д.
1.2. Типы данных, используемые в реестре
Рассмотрим наиболее часто используемые в реестре Windows Vista типы данных.
• REG_BINARY – двоичные данные. Этот тип данных используется, например, для хранения сведений об аппаратных ресурсах; сведения выводятся в Редакторе реестра в шестнадцатеричном формате.
• REG_DWORD – целое число. Может использоваться, например, в качестве переключателя (1 – включение, 0 – выключение некоторого действия); могут применяться и другие числа. Возможно представление этого типа данных в двоичном, десятичном и шестнадцатеричном формате. Этот тип данных используется, например, в параметрах драйверов устройств.
• REG_EXPAND_SZ – расширенная строка. Этот тип данных используется в Windows для ссылок на файлы. Кроме произвольного текста значение параметра такого типа может включать в себя специальные переменные, заменяющиеся определенными путями к каталогам во время своей «интерпретации». Например, значение параметра данного типа может содержать такие специальные переменные.
– %systemroot% – заменяет собой путь к каталогу, в котором операционная система хранит свои файлы (например, каталог C:Windows).
– %windir% – является эквивалентом предыдущей переменной. Ее отличие от %systemroot% заключается в том, что переменную %systemroot% переопределить нельзя, а каталог, к которому ведет переменная %windir%, можно изменить с помощью окна Переменные среды, вызываемого нажатием соответствующей кнопки на вкладке Дополнительно окна Свойства системы.
– %systemdrive% – заменяет собой букву системного диска (диска, в котором операционная система хранит свои файлы).
– %userprofile% – заменяет собой путь к каталогу, хранящему профиль текущего пользователя.
– %programfiles% – заменяет собой путь к каталогу, в который операционная система по умолчанию устанавливает все программы.
– %username% – в отличие от предыдущих переменных, она заменяет собой не путь к каталогу, а имя текущего пользователя, работающего с системой.
– %computername% – как и предыдущая переменная, она не имеет никакого отношения к файловой системе Windows. Эта переменная заменяет собой имя компьютера (именно это имя используется при обращении к компьютеру по сети и хранится в строковом параметре ComputerName ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlComputerNameComputerName).
• REG_MULTI_SZ – многострочный текст (массив строк). Этот тип обычно используется для представления списков и иных подобных записей в удобном для чтения формате.
• REG_SZ – текстовая строка. Данные этого типа используются в реестре чаще всего.
• REG_FULL_RESOURCE_DESCRIPTOR – последовательность вложенных массивов, предназначенная для хранения списка ресурсов устройств или драйверов.
С помощью программы Редактор реестра параметры данного типа создать нельзя (но можно создать с помощью REG-файлов).
• REG_LINK – строковый тип данных, предназначенный для указания пути к файлам. С помощью программы regedit параметры данного типа создать нельзя (но их также можно создать с помощью REG-файлов).
Помимо перечисленных выше типов данных, в системном реестре могут использоваться типы REG_NONE, REG_RESOURCE_LIST и др.
1.3. Общие правила работы с реестром
Редактировать системный реестр можно вручную или с помощью специально предназначенных утилит. Порядок использования утилит описан в гл. 5. Здесь же мы подробнее остановимся на редактировании вручную.
Ручное редактирование системного реестра Windows Vista выполняется либо средствами Редактора реестра, либо с помощью REG-файлов. В следующих разделах мы подробно рассмотрим каждый из этих способов.