Реестр выполняет в Windows две функции — является базой данных настроек для большинства приложений и самой системы Windows, а также хранилищем технической информации для установленных устройств, аппаратных средств и компо-. нентов программного обеспечения.
Все сопоставления типов файлов — связи между документами и приложениями, которые создали эти документы, — построены на информации из реестра. Настройки сети и аппаратного ПО, каждой из настраиваемых панелей инструментов приложения и даже настройки Панели управления Windows — все собрано в реестре. Настройки программ, задаваемые установкой флажков, галочек и переключателей, тоже сохранены в реестре. И различные стандартные блоки программного обеспечения, используемые практически всеми программами, — даже теми, которые включены в Windows, — «зарегистрированы» в реестре.
Но почему механизм хранения всех этих настроек не важен?
Потому что программное обеспечение не идеально. Система Windows 7 позволяет делать только основные настройки, связанные с типами файлов, для большего контроля необходимо редактировать реестр. Не все настройки приложения могут быть изменены в самих приложениях; некоторые изменения могут быть сделаны только в реестре. Когда что-то происходит с программным обеспечением или с аппаратными средствами, иногда единственный способ починки — это редактирование раздела реестра.
На самом деле большая часть того, что кажется жестко запрограммированным в Windows 7, регулируется информацией в реестре: удалите определенный раздел -и исчезнет значок из папки Компьютер. Измените где-нибудь ноль на единицу -и пользователь не сможет выключить Windows. Иногда это именно то, что нужно, но риск совершить ошибку велик. Изменив некоторые параметры в реестре, вы можете безвозвратно отключить некоторые компоненты Windows 7 или сделать так, что система не загрузится. Конечно же, современное программное обеспечение разработано так, что оно может восстанавливать сбитые настройки, но можно поспорить, что до сих пор не придумано надежного средства защиты компьютера от неопытного пользователя. Я не предлагаю вам сидеть сложа руки. Наоборот, стоит предпринять некоторые меры защиты, описанные ниже, перед тем, как вы начнете разбирать реестр на биты. Потратив немного времени на создание заплатки для
реестра (расскажу подробнее в этой главе) перед изменением настроек, вы сможете сэкономить уйму времени.
Большинство изменений в реестре выполняются незаметно для пользователя как запущенными приложениями, так и самой системой Windows; настройки и другая информация постоянно и считываются из реестра, и в него вводятся. Но основным средством редактирования разделов и значений реестра является редактор реестра, имеющийся в любой версии Windows (откройте меню Пуск, наберите текст regedit, а затем нажмите Enter).
Хотя реестр и хранится в виде набора файлов на жестком диске, он представляет собой логическую иерархическую структуру, похожую на файловую систему. Когда вы откроете редактор реестра, то увидите окно, разделенное на две панели (рис. 3.1). Слева находится дерево с папками, а справа отображено содержимое выбранной папки. Но на самом деле это не папки — это просто удобный метод организации и представления информации, хранящейся в реестре.
Каждый объект, похожий на папку, называется разделом. Каждый раздел может содержать как другие разделы, так и конкретные значения. Значения соответствуют фактической информации, хранящейся в реестре, в то время как разделы используются для систематизации значений. Разделы отображаются только в левой панели, а значения — только в правой (в отличие от Проводника, где папки могут отображаться в обеих панелях).
Для вывода на экран содержимого раздела («папки») просто нажмите на имени раздела, и значения, содержащиеся в нем, будут показаны справа в алфавитном порядке. Чтобы раскрыть ветвь подразделов, нажмите маленькую стрелку слева от любого раздела или дважды щелкните мышкой на его имени.
Редактирование реестра обычно подразумевает переход по ветвям к определенному разделу, а затем изменение существующего значения или создание нового раздела или значения. Например, путь
HKEY_CURRENT_USER\Software\Microsoft\Windows
указывает местоположение раздела Windows, к которому вы переходите, раскрывая ветвь HKEY_CURRENT_USER, затем Software, затем Microsoft и в конечном итоге нажимая на Windows, чтобы показать содержимое справа.
fjfir
Если вы снова и снова возвращаетесь к одному и тому же месту в реестре, ис*
- пользуйте меню Избранное, чтобы пометить нужный элемент. Кроме того, можно
{ £ запустить вторую версию редактора реестра, чтобы одновременно видеть два разных места в реестре. Для этого достаточно ввести regedit /т в поле Поиск (Find) меню Пуск и нажать Enter.
Когда раздел открыт, можно изменить конкретное значение, дважды щелкнув на нем мышкой. Подробнее об этом читайте в разделе «Суть реестра: его значения».
Изменить название любого раздела или значения можно так же, как вы меняете имена файлов в Проводнике, — щелкните правой кнопкой мыши и выберите Переименовать (Rename) или нажмите F2. Удалить раздел или значение можно, нажав Del или щелкнув правой кнопкой мыши на его имени и выбрав Удалить (Delete). (Обратите внимание на то, что при удалении раздела удалятся все значения и подразделы, которые он содержит.)
Вы не можете перемещать значения и разделы, так же как вы это делали с файлами или папками в Проводнике. Трудно придумать причину для передо мещения раздела или значения в реестре из одного места в другое, так как
- настройки полностью зависят от расположения. (При перемещении из одного раздела в другой значение может приобрести совершенно другой смысл.) Таким образом, изменение названия или перемещение раздела равносильно его удалению.
Для добавления нового раздела или значения выберите Создать (New) из меню Правка (Edit), а затем укажите тип, который вы хотите добавить (рис. 3.2), задайте имя и нажмите Enter.
Вы можете создать значение (или раздел) практически везде в реестре, назвать его любым именем и задать любое значение, какое только хотите. Однако если система Windows или приложение специально разработаны для определенного значения, то созданное вами значение будет проигнорировано и такое добавление не будет иметь абсолютно никакого эффекта*
Работа с реестром пока что кажется довольно простой. Но вы обнаружите, что главное не то, как изменить что-то в реестре, а что именно изменить. Об этом и пойдет речь в главе.
Один из способов нахождения параметров — поиск в редакторе реестра (Правка ► Найти (Edit ► Find) или Ctrl+F), но вы очень быстро поймете, что этот метод плохо работает. В разделе «Поиск в реестре» приведены некоторые советы, а также рассказано, какие инструменты лучше всего использовать. Раздел «Расположение раздела настроек реестра» полезен, если неизвестно, что именно искать. Но параметры реестра в большинстве случаев зависят от их местоположения в реестре, поэтому, перед тем как вносить какие-то изменения, необходимо познакомиться со структурой реестра.
Существует пять основных ветвей реестра, которые соответствуют определенному типу информации, хранящейся в реестре. Эти корневые разделы нельзя удалить, переименовать или переместить, потому что они — основа реестра:
О HKEY_CLASSES_ROOT
Эта ветвь содержит информацию о соответствии типов файлов зарегистрированным компонентам программного обеспечения (классам), используемым операционной системой и приложениями.
Вся эта ветвь — это «зеркальное отображение» ветви HKEY_L0KAL_MACHINE\ SOFTWARE\Classes, и она способна как помочь вам, так и запутать вас. л *щ
Информация в связанной ветви существует в двойном экземпляре, доступ к ней 0* возможен в двух разных местах реестра. Это означает, что Поиск (Find) найдет ^ I «’ информацию в обоих местах реестра, а изменения в одном месте будут сразу же *’ продублированы и в другом.
О HKEY_CURRENT_USER
Эта ветвь указывает на часть корневого раздела HKEYJJSERS, соответствующую текущему пользователю. Таким образом, любое приложение может считывать и изменять настройки текущего пользователя без указания конкретного имени пользователя.
В каждой ветви пользователя существуют настройки для этого пользователя, такие как, например, настройки Панели управления. Большинство приложений сохраняют здесь также и определенную информацию пользователя, например такую, как панели инструментов, рекорды в играх и другие личные настройки.
Настройки текущего пользователя разделены на несколько категорий: AppEvents, Control Panel, Identities, Software и System. Самая полезная из ветвей -Software, которая содержит данные для приложений, установленных на компьютере. В этом разделе и в разделе HKEY_LOCAL_MACHINE\SOFTWARE (мы поговорим о нем позже) можно найти все настройки ваших приложений. Большинство пользовательских настроек операционной системы находятся в HKEY_CURRENT_USER\ Software\Microsoft\Windows, как будто 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_USERS\S-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 | |
1 | OK: [ f On ***» . j |
--—'"*'■■■1 на 'i | |
Рис. 3.3. Редактирование строкового значения |
Помимо стандартных строк существует еще два специальных строковых типа:
■ REG_MULTI_SZ содержит несколько строк, разделенных нулевыми символами. Хотя редактор реестра и позволяет создавать мультистроковые переменные, невозможно ввести нулевой символ с клавиатуры. Единственный способ -скопировать и вставить его из другого приложения.
• REG_EXPAND_SZ содержит специальные переменные, в которые система Windows подставляет данные перед тем, как передать их приложению. Например, указание на звуковой файл может выглядеть так: %SystemRoot%\Media\doh. wav. Когда Windows считывает значение, она подставляет конкретный путь вместо переменной %SystemRoot%, например C:\Windows\Media\doh.wav (или другой путь, в зависимости от того, где была установлена операционная система). Таким образом, передаваемое значение будет правильным при любом расположении системной папки Windows.
я
^ Убедитесь, что при работе с локализованными переменными выбран тип REG_