Главная
К библиотеке


Еще раз про реестр. Советы и описание реестра Windows

Кондратьев Павел(TysoN)
vjtyson@inbox.ru
www.vjlab.narod.ru
Реестр Windows довольно часто вызывает вопросы у пользователей. Вопросы самые разнообразные: начиная от "Что это такое?" и заканчивая "Зачем это надо и как оно работает?". Данная статья ответит на них полностью или частично.

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

Как известно, реестр является очень важным звеном в системе Win98. Без нормального состояния реестра система просто не загрузится. Любое повреждение реестра вызывает множество проблем, даже если система загружается.

Совет

Windows 98 хранит предыдущие копии реестра в файлах USER.DA0 и SYSTEM.DA0. Если вы при редактировании реестра совершили ошибку, то немедленно закройте все приложения и перезагрузите систему в режиме MS-DOS. Перейдите в главный каталог Windows 98. Воспользуйтесь утилитой ATTRIB с ключами -R, -H и -S для того, чтобы сделать файлы SYSTEM.DA0, SYSTEM.DAT, USER.DA0 и USER.DAT видимыми. Теперь скопируйте резервную копию реестра в оригинальные файлы (т.е. SYSTEM.DA0 в файл SYSTEM.DAT и файл USER.DA0 в USER.DAT). Эта процедура восстановит реестр Windows в то состояние, в котором он находился до редактирования. После этого необходимо опять установить атрибуты файлов в исходное состояние при помощи ключей +R, +H и +S утилиты ATTRIB.

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

Примечание

Прежде чем начинать работу с реестром, нужно добавить в меню Пуск (Start) редактор реестра, т.е. приложение RegEdit. Также полезно просматривать соответствующие разделы реестра, по мере того, как о них будет идти речь. Кроме того, будут представлены некоторые упражнения, которые помогут лучше понять внутреннее устройство реестра.

Рассмотрим внутреннюю организацию реестра. Для того чтобы запустить редактор реестра, откройте RegEdit. В редакторе реестра есть две панели, в этом он похож на проводник Windows. Элементы, отображаемые в левой панели, являются ключами, а в правой панели - значениями. Значение - это содержимое реестра, подобно абзацам в книге. Существует три типа значений: string (строковой тип), binary (двоичный тип) и DWORD (значение типа DWORD). Строковой тип является единственным типом, воспринимаемым человеком. Бинарные значения и значения типа DWORD содержат данные, которые воспринимает компьютер. Значения этих типов отличаются по размеру.

При работе с реестром я всегда поступаю очень осторожно. Читателю необходимо следовать процедуре резервного копирования, прежде чем делать что-либо. Файл резервной копии можно использовать для того, чтобы восстановить реестр. К сожалению, резервная копия реестра не поможет, если реестр удален полностью и машина перезагружена. Для загрузки Windows 98 необходим неповрежденный реестр. Чтобы иметь всегда работающую копию реестра, необходимо копировать файлы USER.DAT, SYSTEM.DAT.

ВНИМАНИЕ!!!

Автор не несет никакой ответственности за ваши возможные некорректные действия с реестром. RegEdit является приложением, которое разработано для того, чтобы опытные пользователи могли изменять поведение Windows 98 и приложений. Хотя RegEdit позволяет повысить производительность системы, при неправильном использовании этого редактора могут получиться непредсказуемые результаты. Никогда не следует редактировать реестр, не представляя четко, за что отвечает редактируемый элемент реестра. Пренебрежение этим предупреждением может привести к потере данных и даже к невозможности загрузки операционной системы Windows 98.

1. Выделите элемент реестра Мой компьютер (my Computer). Выберите команду Реестр, Экспорт файла реестра, (Registry, Export Registry File). Появится диалоговое окно Экспорт файла реестра (Export Registry File), не забудьте выбрать переключатель Все разделы (All) в группе Диапазон экспорта (Export Range). Поле Имя файла (File Name) уже будет содержать имя, но можно ввести любое необходимое имя.

2. Нажмите кнопку Сохранить (Save), чтобы сохранить копию реестра на жестком диске.

После того как сохранена копия реестра, рассмотрим его структуру.

Раздел HKEY_CLASSES_ROOT

В разделе HKEY_CLASSES_ROOT содержатся ключи двух главных типов. Первый тип ключей хранит информацию о расширении файла. Таким способом хранятся все трехбуквенные расширения имен файлов, например MP3 или JPG, которые когда-либо использовались. Windows 98 все еще использует их для определения типа файла. (Так как Windows 98 поддерживает длинные имена файлов, то, используя этот раздел, можно создать ассоциацию для файлов с расширением более чем три символа.) Реестр также использует расширения для того, чтобы связать тип файла с определенным действием. Например, хотя пользователь не может ничего сделать с файлом, имя которого имеет расширение DLL, это расширение все равно хранится в реестре, т.к. Windows 98 нужно знать о том, что файл с расширением DLL является исполняемым файлом. Второй тип ключей представляет собой собственно ассоциацию. Расширение имени файла обычно указывает на файл данных определенного приложения. В разделе, описывающем ассоциацию, находятся ключи, которые используются в контекстном меню Проводника (Explorer). Контекстное меню вызывается нажатием правой кнопки мыши. Ассоциация также содержит информацию о том, какой значок выводить для данного типа файла.

Раздел HKEY_CURRENT_USER

Раздел HKEY_CURRENT_USER содержит множество настроек программного обеспечения, в которых хранится информация о конфигурации рабочего стола и клавиатуры. Кроме того, в этом разделе есть информация о параметрах меню Пуск. Здесь - все настройки, специфичные для пользователя.

Раздел HKEY_CURRENT_USER полностью посвящен настройкам текущего пользователя, т.е. того пользователя, который в настоящий момент зарегистрирован в системе. Это отличается от пользовательской конфигурационной информации, которая хранится в других разделах реестра. Информация в этом разделе является динамической; информация в других разделах, которая относится к пользовательским настройкам, - статическая. Реестр копирует содержимое одного из подразделов из HKEY_USERS в данный раздел и по окончании работы обновляет раздел HKEY_USERS.

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

Раздел HKEY_LOCAL_MACHINE+

В разделе HKEY_LOCAL_MACHINE содержатся основные сведения об аппаратных средствах компьютера, включая драйверы устройств и конфигурационную информацию. Если информации о каком-либо устройстве здесь нет, то Windows 98 не сможет использовать его.

Раздел HKEY_LOCAL_MACHINE - для очень подробной информации об аппаратном обеспечении. Например, он содержит всю информацию, необходимую для Plug and Play, а также предоставляет полный список драйверов устройств и их уровни ревизии (revision level) и даже может содержать информацию о ревизии самого аппаратного обеспечения.

Кроме того в этом разделе имеется некоторая информация о программном обеспечении. Например, 32-разрядное приложение будет хранить таблицу установок и форматов (Setup and Format Table- STF) именно здесь. Эта информация используется приложением во время установки. Некоторые приложения используют ее во время изменений параметров их установки. Такие приложения, как Word, хранят всю информацию о своей установке в таблицах STF. В этом разделе содержится только информация глобального характера.

Раздел HKEY_USERS

Раздел HKEY_USERS содержит список всех пользователей данного файла реестра. Необходимости в изменении информации этого раздела никогда не возникает, но его можно использовать в справочных целях. Причина, по которой нужно следовать этим указаниям, проста: ни одно изменение не войдет в силу до тех пор, пока пользователь не зарегистрируется в системе следующий раз. Кроме того, изменение настроек для текущего пользователя является пустой тратой времени, потому что Windows 98 заменяет все данные в соответствующем разделе данными, которые содержатся в разделе HKEY_CURRENT_USER, во время завершения сеанса или при завершении работы системы.

Существует еще одна проблема, связанная с использованием этого раздела в качестве единственного источника информации. На самом деле Windows 98 поддерживает несколько копий реестра в многопользовательской среде, в некоторых случаях отдельную копию для каждого пользователя. По этой причине никогда нельзя быть уверенным, где именно можно найти информацию об определенном пользователе. Windows 98 отслеживает эту информацию; необходимость поиска такой информации это головная боль для администратора. Сверх того, Microsoft поставляет утилиту, которая помогает администратору сети поддерживать различные реестры. Редактор системных правил (Policy Editor) позволяет упростить для администратора сети управление пользовательскими настройками, при этом является удобным средством доступа к нужным параметрам системы, которые распределены по различным разделам реестра.

Когда пользователь регистрируется в системе, Windows 98 копирует информацию из его профиля в раздел реестра HKEY_CURRENT_USER. Когда пользователь выходит из системы или завершает работу, Windows 98 заменяет информацию в разделе, соответствующему данному пользователю, информацией из раздела HKEY_CURRENT_USER.

Раздел HKEY_CURRENT_CONFIG

Раздел HKEY_CURRENT_CONFIG представляет собой самую простую часть реестра. Он содержит два главных раздела: Display и System. По существу эти разделы используются программным интерфейсом GDI API (не буду подробно останавливаться на его описании, т.к. эта тема отельной статьи) для конфигурации монитора и принтера.

Раздел Display имеет два подраздела: Fonts и Setting. Fonts определяет шрифты, которые Windows 98 использует для вывода на экран. Имеются растровые шрифты (не True Type), которые представляют собой битовые изображения символов.

Setting содержит текущее разрешение экрана и количество битов на пиксел. Количество битов на пиксел определяет доступное количество цветов. Например, 4 бита на пиксел обеспечивают 16 цветов, 8 битов на пиксел обеспечивают 256 цветов. Три шрифта, перечисленных в этом разделе, являются шрифтами по умолчанию, которые система использует для отображения значков и меню приложений. Эти настройки можно изменить в диалоговом окне свойств экрана.

Раздел System производит впечатление чего-то запутанного. Однако только один подраздел этого раздела имеет смысл для пользователя - Printers. Раздел Printers содержит список принтеров, подсоединенных к системе. Этот список не включает принтеры, которые используются по сети.

Раздел HKEY_DYN_DATA

Раздел HKEY_DYN_DATA содержит два подраздела: Config Manager и PerfStats. Просмотреть статус ключа Config Manager можно при помощи вкладки Устройства (Device Manager) диалогового окна свойств системы. Значения ключей из раздела PerfStats отображаются в интерфейсе утилиты System Monitor.

Изучив каждый пункт реестра и сделав резервную копию оного, приступим к экспериментам над ним.

Ускорим меню пуск. Для этого в ключе HKEY_CURRENT_USER\Сontrol Panel\desktop создайте переменную MenuShowDelay типа String. Присвойте ей значение "0". Теперь меню пуск будет открываться намного быстрее.

Если нужно, то можно отменить пункты меню Find и Run в меню Start. В ключе HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\Policies\Explorer создайте переменные NoFind для отмены Find и NoRun для отмены Run типа DWORD. Присвойте переменным значение 1. Далее предлагаю отменить вывод всех пиктограмм на рабочий стол, если нужно, конечно. Делаем следующее в ключе HKEY_CURRENT_USER\ Software\Microsoft\ Windows\CurrentVersion\Policies\Explorer: создайте переменную NoDesktop типа DWORD. Присвойте переменной NoDesktop значение 1.

Отмена просмотра списка дисков в My Computer. В ключе HKEY_CURRENT_USER\Software\Mic-rosoft\ Windows\CurrentVersion\Policies\Explorer создайте переменную NoDrives типа DWORD, присвойте переменной NoDrives значение 3FFFFFF.

Выключение анимации для окон.

В ключе HKEY_CURRENT_USER\Control Panel\Desktop\ WindowMetrics создайте переменную MinAnimate типа String. Значение MinAnimate "0" выключает анимацию, "1" - включает.

Далее предлагаю рассмотреть прочие хитрости реестра. С помощью реестра можно узнать версию Windows, для этого откройте ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion. Переменная типа String VersionNumber содержит версию Windows. Получение путей к системным каталогам. Откройте ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion.

Путь к каталогу Program Files содержится в переменной ProgramFilesDir.

Путь к каталогу Common Files содержится в переменной CommonFilesDir.

Путь к каталогу Windows содержится в переменной SystemRoot.

Путь к каталогу Media содержится в переменной MediaPath.

Путь к каталогу Config содержится в переменной ConfigPath.

Путь к каталогу INF содержится в переменной DevicePath.

Получение списка шрифтов и путей к ним. Откройте ключ HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\ Windows\CurrentVersion\Fonts. Каждая переменная этого ключа представляет собой имя шрифта. Значение переменной представляет собой путь к шрифту. Вряд ли вам это может пригодиться в реальной работе, но в качестве справочной информации вполне приемлемо. Получение списка shared библиотек. Откройте ключ HKEY_LOCAL_MA-CHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\ ShardDLLs. Каждая переменная этого ключа представляет собой путь к shared библиотеке. Значение переменной означает количество программ, которые используют эту библиотеку. Далее переходим к удалению программ из списка Add/Remove Programs. Этот момент, на мой взгляд, является довольно важным, т.к. многие программы после деинсталляции все равно оставляют запись в меню Add/Remove Programs. Это очень мешает, если нужно быстро удалить программу, при наличии большого количества установленных программ. Откройте ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Uninstall.

Уничтожайте любую программу, которая вам не нужна.

Добавление программ для одного запуска во время загрузки Windows. Откройте ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunOnce, если вы хотите, чтобы программа запустилась один раз при загрузке Windows, после запуска сетевых сервисов. Добавьте переменную с любым именем и значением типа String. В значении переменной напишите полный путь к программе.

На этом я хотел бы завершить статью. Возможно, если появятся вопросы или предложения, статья будет продолжена, а пока, если у вас возникли вопросы или комментарии, то пишите - всем отвечу.

Источник: Компьютерная газета


Copyright © 1999-2000гг. "Internet Zone" & Nik Romanov. nikspase@mail.ru, nikspase@hotmail.ru,  http://www.izone.com.ua/
Hosted by uCoz