О системном реестре замолвите слово

О системном реестре замолвите слово Внимание! Никогда не модифицируйте переменные реестра, если не знаете совершенно точно, для чего они предназначены. Никогда не удаляйте и не переименовывайте разделы реестра, если не уверены в своих действиях на все 100%. Информация, содержащаяся в реестре, является критичной для работы приложений и системы в целом.

Немного теории

Реестр - это централизованное хранилище данных, которым пользуется операционная система и приложения для хранения самой разнообразной информации. Почти любая программа должна сохранять какие-либо свои настройки, имена файлов, открывавшихся пользователем в последнее время, и т.д. Раньше, в Windows 3.x, вся эта информация хранилась в ini-файлах. Свой ini-файл имело каждое уважающее себя приложение. Сама же операционная система основную массу своих настроек сохраняла в файлах win.ini и system.ini. В настоящее время Microsoft рекомендует разработчикам ПО не использовать ini-файлы, а пользоваться вместо них реестром. Хотя win.ini, system.ini и некоторые другие системные ini-файлы до сих пор существуют в Windows в целях совместимости со старыми программами, подавляющее большинство системных данных хранится в реестре. Реестр представляет собой базу данных, имеющую древовидную структуру. "Корнем" этого дерева являются шесть разделов (root keys):

[HKEY_CLASSES_ROOT]
[HKEY_CURRENT_USER]
[HKEY_LOCAL_MACHINE]
[HKEY_USERS]
[HKEY_CURRENT_CONFIG]

В каждом из этих разделов также содержатся разделы (keys), в них - разделы следующего уровня и т.д. В разделах хранятся значения (values), которые могут иметь строковый тип (String Value), двоичный тип (Binary Value) и целочисленный тип (DWORD Value).

Давайте заглянем внутрь реестра, чтобы лучше разобраться в назначении различных его разделов. Сделать это проще всего с помощью утилиты Regedit.exe, находящейся в директории Windows.

Итак, начнем наше путешествие по реестру. Откроем первый корневой раздел - [HKEY_CLASSES_ROOT]. В нем содержится информация о зарегистрированных типах файлов. Найдем раздел с информацией о bmp-файлах. В разделе .bmp мы видим следующие переменные: Default = "ACDC_BMP"Content Type = "image/bmp"

Эти переменные содержат поясняющую информацию о данном типе файла. Разумеется, на вашем компьютере содержимое данного раздела реестра может несколько отличаться от приведенного здесь. Например, строку "ACDC_BMP" вставил вьювер "ACD See". Далее в этой статье мы будем искать в реестре данные, относящиеся именно к этой программе (разумеется, вместо нее вы можете использовать любую другую). Находим раздел "ShellEx", в котором находится еще один раздел, название которого представляет собой 32-значный номер. В этом разделе находится строковая переменная, содержащая другой 32-значный номер. Наличие раздела ShellEx означает, что для данного типа файла в системе установлено расширение оболочки (Shell Extension), а номер, представляющий собой название раздела и значение вышеупомянутой строковой переменной, служит для однозначной идентификации объекта - обработчика (в данном случае - встроенной в оболочку Windows 98 программы просмотра). Точно такой же подраздел ShellEx есть в разделах .jpg, .jpeg, .gif, .htm, .html и в некоторых других. Следующий подраздел - ShellNew - предназначен для того, чтобы вы могли создать новый файл с расширением *.bmp прямо из оболочки Windows. Подраздел UndoClass также связан с расширением оболочки. Но как же данное расширение файла связано с открывающим его приложением? Очень просто. В рассмотренном выше разделе ".bmp" (и в других аналогичных) имеется строковая переменная "(Default)", имеющая некое значение, в случае с нашим bmp-файлом - "ACDC_BMP". Это значит, что где-то ниже существует раздел с таким именем. И действительно, он есть. В разделе ACDC_BMP имеется одна строковая переменная, содержащая развернутое имя данного формата файла. Именно это имя мы и увидим в окне "Properties" любого BMP-файла. В подразделе "DefaultIcon" можно увидеть путь к файлу, содержащему значок для данного расширения. Это может быть файл *.ico, *.exe или *.dll. В подразделах "Edit", "Open" и "View" мы сможем найти информацию о приложениях, предназначенных для выполнения соответствующих операций. В данном случае для операций "Open" и "View" указан путь к самому ACDSee, а для редактирования файла предназначен MSPaint. Изменив соответствующие переменные в этих разделах реестра, вы можете назначить для операций с файлом любую другую программу. Более того, вы можете добавить раздел, к примеру, "Print", указав в нем путь к приложению, "умеющему" печатать BMP-файлы.

Перейдем к корневому разделу реестра [HKEY_CURRENT_ USER]. Здесь, в подразделе "Software", программы хранят данные о своей текущей конфигурации. Естественно, у каждой программы эти данные свои и о назначении большинства из них знает только разработчик данного приложения. Однако с некоторыми настройками в случае необходимости можно поэкспериментировать - только запаситесь дистрибутивом программы. В этом же разделе Windows хранит настройки рабочего стола.

Следующий раздел реестра: [HKEY_LOCAL_MACHINE]. В этом разделе Windows хранит данные о конфигурации аппаратных средств - поле для экспериментов, мягко говоря, не лучшее. В этом разделе тоже есть подраздел "Software". Здесь для каждой программы записан номер ее версии, имя пользователя, различная регистрационная информация. Зайдя в раздел "Microsoft", мы обнаружим просто колоссальный перечень различных компонентов операционной системы - начиная от DirectX и заканчивая JavaVM. Вот здесь можно копаться много и долго - особенно в разделе Windows/CurrentVersion. В нем, например, в подразделе "Fonts" перечислены все установленные в системе шрифты, а в подразделе "Run" - программы, запускаемые при старте Windows (вы можете сами записать туда что-нибудь).

Далее идут [HKEY_USERS], [HKEY_ CURRENT_CONFIG] и [HKEY_DYN_DATA]. В них содержатся различные настройки Windows, в основном относящиеся к системе Plug and Play. Обычные прикладные программы, как правило, в эти разделы никаких данных не помещают.

Практическая работа
Для работы с реестром необходимо запустить программу, которая позволяет редактировать реестр. Для этого надо тыкнуть в "Пуск", затем кликнуть на "Выполнить" и набрать regedit. Реестр Windows решает проблему централизованного хранения всех параметров настройки и инициализации системы. Реестр использует только два файла: USER.DAT и SYSTEM.DAT. Назначение этих файлов различно: первый из них предназначен для хранения информации о конкретных пользователях, а второй - для хранения параметров системы. При запуске Windows происходит автоматическое резервное копирование текущих файлов реестра. Файлы резервных копий получают имена SYSTEM.DA0 и USER.DA0. Эта процедура предоставляет вам виртуальную гарантию того, что при следующей перезагрузке системы Windows будет иметь "хорошие" копии файлов реестра. Если реестр оказался испорченным, то для его восстановления загрузитесь с системной дискеты и выполните следующие команды:

C:
CD \WINDOWS
attrib -r -h -s system.dat
attrib -r -h -s system.da0
ren system.dat system.bad
ren system.da0 system.dat
attrib -r -h -s user.dat
attrib -r -h -s user.da0
ren user.dat user.bad
ren user.da0 user.dat

Это должно восстановить реестр в том состоянии, в котором он находился, когда вы в последний раз успешно загрузили Windows 9x. К сожалению, эта процедура не является полностью защищенной от сбоев, так как файлы *.DA0 могут быть повреждены во время сеанса работы Windows.

Обновление реестра
Если Вам надо обновить реестр, а перезагружать машину не хочется, то нажмите <Ctrl> +<Alt> +<Del>, выберите explorer (проводник) и нажмите кнопку end task (снять задачу). На предложение выключить машину ответьте отказом, после чего нажмите end task в следующем окне.

Вскоре после этого Вы увидите, что task bar (системная панель) снова появилась. Виталий Герасевич ( gerasevich@belmednet.com ) (c) компьютерная газета


Компьютерная газета. Статья была опубликована в номере 30 за 2000 год в рубрике soft :: системные программы

©1997-2024 Компьютерная газета