Реестр Windows Vista.
Использование любого программного продукта зависит от того, насколько точно была сделана его настройка.Как правило,параметры настройки собраны в специальной базе данных, являющейся одним из основных компонентов программы. В операционной системе Windows такая база данных называется системным реестром,содержимое которого мы и будем рассматривать .
Группировка данных в реестре
Все параметры системного реестра Windows Vista в зависимости от их функционального назначения сгруппированы в пяти основных разделах. Они называются корневыми разделами реестра.
Коротко остановимся на каждом из них (отметим, что название каждого раздела начинается с английской аббревиатуры 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_MACHINE\SOFTWARE\Classes.
HKEY_USERS — включает в себя информацию обо всех пользователях данного компьютера.
Следует отметить тесную взаимосвязь данного корневого раздела с корневым разделом HKEY_CURRENT_USER, который фактически является ссылкой на подраздел корневого раздела HKEY_USERS, хранящий сведения о текущем пользователе.
HKEY_CURRENT_CONFIG — хранит информацию о настройках оборудования, которое используется локальным компьютером в текущем сеансе работы.
Надо сказать, что данный корневой раздел является ссылкой на подраздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles.
В целом структура реестра представлена в иерархическом порядке: каждый из перечисленных разделов имеет ряд подчиненных уровней иерархии, нижней ступенью которой являются параметры настройки системного реестра.
Примером иерархии можно считать указанный выше подраздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles. Он начинается с корневого раздела HKEY_LOCAL_MACHINE. Подраздел SYSTEM находится в корневом разделе HKEY_LOCAL_MACHINE и является подчиненным ему. Подраздел CurrentControlSet находится в подразделе SYSTEM и т. д.
Типы данных, используемые в реестре
Рассмотрим наиболее часто используемые в реестре 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_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName).
REG_MULTI_SZ — многострочный текст (массив строк). Этот тип обычно используется для представления списков и иных подобных записей в удобном для чтения формате.
REG_SZ — текстовая строка. Данные этого типа используются в реестре чаще всего.
REG_FULL_RESOURCE_DESCRIPTOR — последовательность вложенных массивов, предназначенная для хранения списка ресурсов устройств или драйверов. При помощи программы Редактор реестра параметры данного типа создать нельзя (но можно создать при помощи REG-файлов).
REG_LINK — строковый тип данных, предназначенный для указания пути к файлам. При помощи программы regedit параметры данного типа создать нельзя (но их также можно создать при помощи REG-файлов).
Помимо перечисленных выше типов данных, в системном реестре могут использоваться типы REG_NONE, REG_RESOURCE_LIST и др.
Общие правила работы с реестром
Редактировать системный реестр можно вручную или с помощью специально предназначенных утилит.
Ручное редактирование системного реестра Windows Vista выполняется либо средствами Редактора реестра, либо с помощью REG-файлов. В следующих разделах мы подробно рассмотрим каждый из этих способов.
Редактор системного реестра Windows Vista представляет собой встроенный механизм, предназначенный для просмотра и редактирования параметров реестра. Для запуска Редактора реестра предназначен файл regedit.exe, расположенный в каталоге Windows, однако целесообразнее воспользоваться командой Пуск/Выполнить и в открывшемся окне Запуск программы в поле Открыть ввести regedit.
Использование REG-файлов
Эксплуатируя систему,мы можем столкнуться с ситуацией, когда редактирование реестра средствами Редактора реестра невозможно или нецелесообразно. В таких случаях следует использовать файлы реестра, которые имеют расширение REG. В данном разделе мы коротко рассмотрим порядок работы с REG-файлами.
По своей структуре и содержанию файл реестра представляет собой обычный текстовый файл, поэтому его формирование и редактирование возможно с помощью любого текстового редактора (например, Блокнота). Следует отметить, что для редактирования имеющегося REG-файла целесообразно воспользоваться командой Файл/Экспорт, которая активизируется в окне Редактора реестра. В результате выполнения этой команды требуемый файл (это может быть как файл отдельного раздела или ветви, так и файл реестра целиком) будет экспортирован по указанному пути. После внесения всех необходимых изменений файл импортируется в реестр с помощью команды Файл/Импорт, также вызываемой в окне Редактора реестра.
Следует учитывать, что двойной щелчок кнопкой мыши на имени файла реестра в Проводнике не откроет его для редактирования, а приведет к импорту его в реестр таким же образом, как это произошло бы при выполнении команды Файл/Импорт.
Резервное копирование и восстановление реестра
Характерной особенностью реестра Windows является то, что, в отличие от большинства других программ, при его редактировании система не спрашивает, желает ли пользователь сохранить внесенные изменения. Поэтому в процессе работы с реестром следует помнить, что все внесенные в него корректировки невозможно отменить. Поскольку системный реестр является одним из главных компонентов Windows, необходимо перед началом редактирования создать его резервную копию, к которой можно будет вернуться в случае внесения в реестр ошибочных изменений. В этом разделе мы кратко остановимся на двух наиболее популярных способах сохранения резервной копии.
Архивирование в REG-файл
Самым простым способом является создание резервной копии с помощью Редактора реестра. В левой панели окна редактора следует установить указатель мыши на ветвь Компьютер (в этом случае будет сохранен весь реестр; если необходимо сделать копию какой-либо его части, то нужно выделить ее указателем) и выполнить команду Файл/Экспорт либо команду Экспортировать контекстного меню, которое появляется при щелчке правой кнопкой мыши на выделенном элементе. В результате на экране откроется стандартное окно Экспорт файла реестра, в котором следует указать имя файла и путь для его сохранения, а затем нажать кнопку Сохранить. После этого реестр (либо выделенная его часть) будет сохранен в виде REG-файла (описание порядка работы с REG-файлами см. в разд. 1.4). Рекомендуется, помимо сохранения файла реестра на локальном компьютере, сохранять его и на внешнем носителе информации (другой компьютер, компакт-диск и т. п.). Для последующего восстановления системного реестра из сохраненного заранее REG-файла необходимо запустить Редактор реестра и выполнить команду Файл/Импорт. В результате на экране отобразится стандартное окно Импорт файла реестра, в котором следует указать путь для импорта файла.
Резервное копирование и восстановление реестра
Характерной особенностью реестра Windows является то, что, в отличие от большинства других программ, при его редактировании система не спрашивает, желает ли пользователь сохранить внесенные изменения. Поэтому в процессе работы с реестром следует помнить, что все внесенные в него корректировки невозможно отменить. Поскольку системный реестр является одним из главных компонентов Windows, необходимо перед началом редактирования создать его резервную копию, к которой можно будет вернуться в случае внесения в реестр ошибочных изменений. В этом разделе мы кратко остановимся на двух наиболее популярных способах сохранения резервной копии.
Создание куста реестра
Более удобным и, одновременно, более сложным способом архивирования части реестра является создание куста реестра. Кустом реестра называется ветвь или корневой раздел, которые хранятся в отдельном файле. Собственно, сам реестр операционных систем семейства Windows хранится в виде отдельных кустов (расположенных в каталоге %systemroot%\system32\config), поэтому, создавая куст вы, фактически, создаете часть реестра, которую впоследствии можно будет загрузить в Редактор реестра.
Чтобы создать куст реестра, необходимо воспользоваться командой вида reg save ветвь_реестра файл. Например, архивирование корневого раздела HKEY_CURRENT_USER в файл MyHKCU.hiv, расположенный в каталоге c:, выполняется при помощи команды reg save HKCU c:\MyHKCU.hiv.
Впоследствии вы всегда сможете восстановить содержимое ветви реестра из созданного ранее куста. Для этого предназначена команда вида reg restore ветвь_реестра файл. Например, reg restore HKCU c:\MyHKCU.hiv.
Создание и восстановление из куста реестра выполняется намного быстрее, чем создание и восстановление из REG-файла. Однако это еще не все преимущества использования кустов реестра.
Главным преимуществом данного способа архивирования является то, что вы в любой момент сможете воспользоваться программой Редактор реестра чтобы отредактировать содержимое созданного ранее куста. Например, изменить значение какого-либо параметра, создать или удалить параметр или ветвь реестра и т.д. В общем, выполнить над кустом любую операцию, которую можно выполнить над самим реестром. Для этого нужно запустить программу regedit.exe, после чего выделить один из основных корневых разделов реестра (например, корневой раздел HKEY_LOCAL_MACHINE), а потом воспользоваться командой меню Файл/Загрузить куст. Эо приведет к отображению нескольких диалогов. В первом из них нужно выбрать файл куста реестра, который вы хотите загрузить. Во втором же нужно ввести какое-либо имя, под которым этот куст будет отображаться в выделенном вами корневом разделе (то есть, в корневом разделе HKEY_LOCAL_MACHINE). Например, можно ввести имя HKCU.
После того, как вы поработали с загруженным кустом, его необходимо выгрузить. Для этого выберите добавленный куст реестра (то есть, выделите раздел с именем, которое вы указали при загрузке куста реестра), после чего воспользуйтесь командой меню Файл/Выгрузить куст. В принципе, этого можно и не делать — операционная система сама выгрузит ваш куст при завершении работы компьютера. Однако вы должны понимать, что загруженный вами куст, если вы его не выгрузите, будет находиться в оперативной памяти вплоть до следующей перезагрузки/выключения компьютера.