Системный реестр

Системный реестр Microsoft Windows 95

Среди программистов очень популярен анекдот о том, что Microsoft подала в суд на фирму Бандай, производителя “Томагучи” (электронных игр, в которых надо ухаживать за домашними животными, и от которых детишки всего мира сдвинулись умом). Суть обвинения заключалась в том, что программное обеспечение томагучи – плагиат майкрософтовского. Адвокат Microsoft Эрик Лоргард заявил: “Томагучи требуют постоянного, практически ежечасного ухода, иначе они гибнут. Впервые это было реализовано в Windows”. Конечно, в анекдоте действительное положение дел, мягко говоря, несколько утрировано, на то он и анекдот; однако в известном смысле доля правды здесь присутствует. Шутки шутками, но проблема выбора операционной системы уже решена за пользователя. Поэтому порой приходится тратить много времени на устранение последствий системных “обвалов”, которые происходят довольно часто, особенно на “неустойчивых” конфигурациях компьютеров.

Восстановить Windows 95 после почти любого сбоя можно за 10 мин, но у неподготовленного пользователя этот процесс отнимет намного больше времени, и даже может завершиться переустановкой системы. Чтобы быть готовым к разного рода сюрпризам, которые преподносит нам Windows 95, стоит разобраться, что же творится “под” Рабочим столом.

Что такое системный реестр

При установке на компьютер Windows создает системный файл (системный реестр, файл регистрации), содержащий информацию о конфигурации компьютера (модели монитора, типе и объеме винчестера и т.д.) и настройках операционной системы, которые определяются при инсталляции (разрешение экрана, часовой пояс и т.п.). Этот файл записывается в трех вариантах: в корневом каталоге с названием system.1st и в директории, где располагается Windows, с именами system.dat и system.da0. Во время эксплуатации операционной системы эти файлы используются с разными целями. Файл system.1st остается в неизмененном виде и не используется. Алгоритм работы системы с двумя другими файлами следующий: при загрузке необходимые системе данные считываются из файла system.dat и, если в нем не обнаружатся ошибки, он копируется как system.da0. Если же system.dat содержит ошибки, то поверх него пишется system.da0. Во время работы с Windows все изменения вносятся в system.dat, а system.da0 выступает в качестве резервной копии. Когда вы перезагружаете Windows, обновленный во время прошлого сеанса system.dat заменяет system.da0. Таким образом, у вас всегда есть две копии системного реестра, одна из которых хранит информацию о системе на момент установки ее на ваш компьютер, а другая – на момент начала последнего сеанса работы.

Напрашивается резонный вопрос: зачем Windows соблюдает такие меры предосторожности при работе с этим файлом? Ведь в случае его утраты всегда можно запустить программу инсталляции, которая заново создаст его. Ответ находится в технической документации к Windows 95 в разделе “What’s new” (“Что новенького”). Одно из существенных отличий Windows 95 от Windows 3.1 и других ранних версий состоит в том, что параметры настроек приложений, которые ранее записывались в связанный с программой файл инициализации (*.ini), теперь помещаются в общий для всех программ файл – уже известный нам system.dat. Таким образом, меры предосторожности при работе с системным реестром объясняются тем, что помимо сведений, заносимых при инсталляции ОС, он содержит информацию почти обо всех установленных на компьютере приложениях, которую можно восстановить лишь при повторной установке программы.

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

Причина этого, вероятно, лежит в особой схеме работы Windows с системным реестром: размер файла регистрации никогда не уменьшается! Когда программа или пользователь в редакторе реестра удаляют записи, они просто помечаются как ненужные, но остаются в system.dat. Большой размер реестра часто приводит к сбоям, поэтому многочисленные установки-переустановки программ (особенно больших пакетов) вредны для системы. Естественно, что это не касается программ для MS DOS.

Средний размер файла system.dat составляет 3-5 Мбайт. Если на вашем компьютере объем системного реестра существенно превышают средний, вам следует самостоятельно заняться его уменьшением. При этом вам подойдет любая из утилит, разработанных для этой цели. Поскольку на Западе эту проблему осознали достаточно давно, у вас есть большой выбор (загляните хотя бы на сервер http://www.download.com/ или http://www.shareware.com/). К сожалению, пока еще не начали делать программы для логического анализа системного реестра, поэтому единственный способ предотвратить потерю содержащейся в нем информации – своевременно сделать резервную копию (backup). Но резервная копия всего системного реестра и так существует – в файле system.da0.

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

Разделы_И_Параметры

Для того, чтобы работать с файлом регистрации, используется редактор реестра regedit.exe, который входит в стандартный комплект поставки Windows 95 на CD-ROM и размещается в директории Windows. Запустите его и вы попадете в “центр” операционной системы Windows 95.

Структура реестра аналогична файловой системе. Главные ее элементы – разделы и параметры. Разделы соответствуют папкам (директориям) и могут содержать параметры. Директория на жестком диске является структурным элементом и не несет информации. Информация хранится в файлах. То же самое в структуре реестра: разделы обладают именем, тогда как параметры имеют и имя, и значение. Собственно в значениях параметров и хранится та информация, которую мы должны всячески оберегать. Каждый раздел, помимо параметров, обладающих именем, содержит один параметр “по умолчанию”, который добавляется автоматически при создании раздела и не переименовывается. Разделы обозначают категории (например, название устройства или программы), к которым относятся находящиеся внутри них параметры. Например, если параметр RegisteredUser находится в разделе Windows, то его значение содержит имя зарегистрированного пользователя Windows. Параметр с таким названием, но находящийся в разделе Netscape, будет содержать то имя, под которым вы регистрировались, устанавливая программы компании Netscape.

На верхнем уровне реестра находятся шесть разделов:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA.

(Обычно их называют по первым буквам: HKCR, HKCU, HKLM, HKU, HKCC, и HKDD.) Разделы верхнего уровня нельзя переименовать. Поскольку вся информация располагается внутри этих разделов, рассмотрим подробнее структуру и предназначение каждого из них.

HKEY_CLASSES_ROOT

В этом разделе хранятся все связи между типами файлов и приложениями (например, информация о том, что текстовые файлы с расширением txt следует открывать с помощью блокнота). Тут же указываются иконки, связанные с тем или иным типом файлов. Если расширение файла не упомянуто в этом разделе, то проводник показывает в качестве иконки листок с эмблемой Windows, а при попытке открыть файл предлагает выбрать приложение для этого. Редактировать этот раздел намного удобнее в Проводнике (Пункт меню Вид\Параметры\Типы файлов). Хотя в редакторе реестра HKCR представлен отдельным разделом, на самом деле он является ярлыком к разделу HKLM\ Software\ Classes\.

Помимо информации о типах файлов, в HKCR\CLSID\ хранится информация об объектах (или классах) Windows (отсюда и название всего раздела – Указатель_На_Классы). Под объектом понимается как программа, динамически подключаемая библиотека или элемент ActiveX, так и системные объекты рабочего стола (Мой компьютер, Корзина, Сетевое Окружение). Для каждого класса создается свой раздел, который называется по уникальному номеру объекта, назначаемому системой. Собственно название объекта записывается в параметр по умолчанию (для этого раздела). Помимо параметра по умолчанию, внутри раздела создаются подразделы, в которых описываются способы взаимодействия объекта с другими объектами и операционной системой (участие в операциях drag-and-drop, OLE и т.д.). Таким образом, раздел HKCR очень важен для системы, так как именно тут хранится основа всего пользовательского графического интерфейса (GUI). Поскольку он обновляется по мере установки новых и удаления ненужных программ, резервную копию с него надо снимать достаточно часто.

HKEY_CURRENT_USER

В этом разделе хранятся индивидуальные настройки системы и приложений для текущего пользователя (например, разрешение монитора, параметры почтового сервера и т.д.). Фактически этот раздел является ярлыком к тому подразделу в HKEY_USERS, где хранятся настройки для текущего пользователя. Этот раздел создается динамически во время загрузки: система идентифицирует пользователя, находит соответствующий ему раздел в HKEY_USERS и затем копирует его в HKEY_CURRENT_USER.

HKEY_LOCAL_MACHINE

Уже по названию понятно, что в этом разделе хранится информация о компьютере. Мало того, что в содержащиеся тут данные занесена конфигурация “железа”, они еще и описывают основные параметры работы Windows и установленных программ. После установки Windows HKLM включает восемь подразделов: Config, DesktopManagement, Enum, Hardware, Network, Security, Software, System. Их краткое описание приведено в табл. 1.


Таблица 1. Краткое описание подразделов HKEY_LOCAL_MACHINE

Название
подраздела

Краткое описание данных,
хранящихся в этом разделе

Config

Большой набор некоторых параметров системы: в настройках Internet, подключённых принтерах и т.п.

DesktopManagement

Информация, требующаяся для настройки системы из панели управления

Enum Hardware

Данные об установленном аппаратном обеспечении

Hardware

Информация о портах и модемах используемых с системой удалённого доступа. Может содержать описание процессора и сопроцессора

Network

Заполняется данными, когда пользователь подключает компьютер к локальной сети

Security

Информация об уровне сетевой безопасности и правах удалённого доступа

Software

Здесь находятся параметры и настройки установленного софта

System

Основываясь на значениях параметров этого раздела, система загружает драйверы устройства службы Windows 95 и т.д.


Из восьми подразделов HKEY_LOCAL_MACHINE наиболее важны, несомненно, Software и та часть System, в которой зарегистрированы установленные на компьютере динамически подключаемые библиотеки (HKLM\System\CurrentControlSet\Control\SessionManager\). Информация других подразделов восстанавливается при переинсталляции. В разделе Software наибольший интерес представляет подраздел Microsoft\Windows\CurrentVersion. Не составит труда догадаться, что в нем содержатся настройки операционной системы. Именно к данным, хранящимся в разделе HKLM\Software, и стоит относиться особенно внимательно.

HKEY_USERS

В этом разделе регистрируется каждый из работающих с системой пользователей. После установки Windows здесь есть только один раздел – “.Default”, т.е. пользователь по умолчанию. Если вы конфигурируете систему как многопользовательскую, то по мере появления новых людей, работающих с компьютером, создаются разделы с настройками для каждого из них. Приложения, ориентированные на многопользовательскую среду, записывают свои настройки в раздел с именем пользователя в подраздел Software. При запуске они проверяют имя пользователя и работают согласно настройкам, сделанным им. Если ваша система многопользовательская, то имеет смысл создание резервной копии со всего раздела HKU, в противном случае (или если вы не хотите сэкономить место на диске) достаточно копии с раздела HKU\.Default\Software.

HKEY_CURRENT_CONFIG

Этот раздел является ярлыком, указывающим на текущую конфигурацию из списка, хранящегося в разделе HKLM\Config. Не представляет особой ценности, так как восстанавливается при инсталляции Windows.

HKEY_DYN_DATA

В этом разделе собраны параметры, относящиеся к устройствам Plug and Play, находящимся в операционной системе. Эта информация динамическая, т. е. изменяющаяся по мере подключения или удаления из системы устройств. Ценность ее сомнительна: при загрузке Windows 95 сама “увидит” незарегистрированное устройство и занесет данные о нем в системный реестр.

Как правильно сделать backup...

Напомним, что не стоит просто копировать весь файл целиком. Поэтому перед тем, как делать backup, решите, какие данные из системного реестра вам нужны. Определяться придется владельцам многопользовательских компьютеров, так как им надо решить, стоит ли снимать копии с настроек всех пользователей, или только с основной. Затем запустите программу regedit.exe, откройте нужный вам раздел, например HKLM\Software\, и в меню Реестр выберите пункт “Экспорт файла реестра”. В открывшемся диалоге сохранения выберите имя файла, в который будет произведен экспорт. Не забудьте выбрать опцию “Импортировать выделенный раздел”. Создайте таким образом backup-копии со всех интересующих вас разделов системного реестра. Советуем вам делать резервное копирование регулярно. Если у вас установлен пакет Plus!, то вы можете с его помощью составить расписание, в соответствии с которым regedit будет автоматически запускаться в определенный день недели и даже в определенное время.

...и восстановить реестр
в случае сбоя

Сбои бывают двух основных типов. Одни связаны с работой программ, другие – с работой операционной системы в целом. Сбои, связанные с работой приложений, решаются в два шага: сначала надо выяснить причину ошибки, а затем устранить ее. Если программа не работает из-за сбоя в системном реестре, надо импортировать в него тот файл, в котором у вас содержится поврежденный раздел. В выяснении причин ошибок в Windows 95 существенную помощь могут оказать утилиты regmon и filemon (работа с ними была подробно описана в ПЛ №4 за 1997 г. в статье “Громоздкие программные продукты”).

Сбои в операционной системе (например, когда перестают запускаться все программы и т.д.) решаются проще. Как только Windows начинает “странно себя вести”, перезагрузите компьютер в режиме эмуляции MS DOS. Если откажет меню Пуск, попробуйте нажать ALT+F4. Если не поможет и это, перезагрузите машину, нажав CTRL+ALT+DEL или Reset. В начале перезагрузки нажмите F8 и вы попадете в загрузочное меню Windows 95. Выберите вариант загрузки в режиме MS DOS. Главное для вас – любым способом попасть в режим MS DOS, избежав перезагрузки Windows. Теперь, введя следующие команды, мы заменим system.dat на system.da0, а user.dat на user.da0. Команды печатаются в командной строке, и после набора каждой из них нажимается ENTER.

attrib -h -r -s system.dat
attrib -h -r -s system.da0
copy system.da0 system.dat
attrib -h -r -s user.dat
attrib -h -r -s user.da0
copy user.da0 user.dat

Осуществив эту несложную операцию, напечатайте в командной строке “win”. Если сбои продолжаются, перегрузитесь в режиме MS DOS снова. Теперь введите следующие команды:

attrib -h -r -s system.dat
attrib -h -r -s C:\system.1st
copy c:\system.1st system.dat

Если и на этот раз после перезагрузки система отказывается работать – выход один. Надо взять установочный диск с Windows 95 и переустановить его в ту же директорию. Старую версию при этом можно не стирать – она обновится автоматически.

Когда система заработает стабильно, импортируйте в нее ваши резервные копии. Для этого достаточно щелкнуть по содержащим копии файлам мышкой. Импорт данных при этом происходит автоматически.

Десерт из недокументированных
секретов со сливками

Близкое знакомство с системным реестром дает огромные возможности по настройке Windows 95. В сочетании со стандартными функциями, доступными через Рабочий стол и кнопку Пуск, они превращают эту ОС в действительно гибкое и удобное орудие труда. Расположение основных системных настроек в системном реестре описано в табл. 2.


Таблица 2. Размещение настроек Windows в файле регистрации

Расположение в файле регистрации*

Краткое описание данных, хранящихся в этом разделе

D\App\Paht

Зарегистрированные в системе приложения

D\Explorer

Параметры проводника Windows и некоторых из настроек рабочего стола

D\Explorer\Tips

Подсказки Windows

D\Explorer\UserShellFolders

Пути к пользовательским папкам "Избранное" и "Мои документы"

D\Font

Зарегистрированные в системе шрифты

D\InternetSetting

Настройки Internet

D\MS-DOSOption

Опции сеанса MS-DOS

D\Uninstall

Информация для деинсталяции программ

D\Winlogon

Настройки префиксов Internet

HKLM\Software\Microsoft\Windows\Help

Зарегистрированные в системе файлы помощи

* D заменяет HKLM\Software\Microsoft\Windows\CurrentVersion\


Когда вы устанавливаете какую-нибудь программу, Windows часто обращается к установочному CD-ROM или дискете. Если нужные файлы не находятся там, то вам выдается окошечко со списком вариантов, где могут находиться требуемые системе файлы. Этот список можно редактировать по мере надобности, так как хранится он, естественно, в системном реестре, в разделе HKCU\ InstallLocationsMRU. Имена параметров – буквы английского алфавита. Вы можете просто добавить свой параметр в этот список или отредактировать существующие. Параметр, хранящийся в этом же разделе, MRUList, содержит порядок расположения остальных параметров в списке, который Windows выводит на экран. Если вы добавите свой параметр или удалите существующий, не забудьте добавить или удалить ссылку на него из значения параметра MRUList. Для этого просто щелкните по полю “Название” и в открывшемся окне соответствующим образом отредактируйте его значение. Кстати, загадочная аббревиатура MRU обозначает Most Recently Used, т. е. наиболее часто используемый.

Особо внимательные пользователи вспомнят, что подобного рода списки возникают еще в двух ситуациях: при поиске файлов Windows 95 предлагает выбрать из списка параметры поиска и после нажатия кнопки Выполнить меню Пуск. Естественно, что эти списки также хранятся в файле регистрации, в разделе HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\
в подразделах Doc F
ind Spec MRU и RunMRU соответственно.

Раз уж мы начали исправлять привычки Windows 95, разберемся с настройками папок по умолчанию. Вам никогда не хотелось переместить папку “Мои документы” из корневого каталога? Система говорила, что это невозможно, хотя это неправда. Системной папкой для хранения документов можно сделать любую папку в вашей файловой системе. Точно так же можно назначить для себя отдельные от всех остальных пользователей (если их несколько) папки, где будет храниться ваш Рабочий стол, ярлыки из меню Пуск\Документы и т.д. Пути к файлам содержатся в параметрах раздела HKCU\Software\ Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\. Заглянув в этот раздел, вы без труда поймете, как изменить текущие настройки системы.

С помощью редактора реестра вы можете полностью преобразить вашу операционную систему. Вы даже можете изменить и добавить собственные “советы дня”. Для этого достаточно войти в раздел реестра HKLM\Software\Microsoft\ Windows\CurrentVersion\ explorer\Tips. Там 47 параметров, т.е. 47 советов. Если вы хотите добавить свой совет, создайте новый параметр с номером 48 и в качестве его значения введите строку с текстом совета. Теперь, запустив программу Welcome (она находится в одной директории с regedit), вы можете увидеть свой совет, несколько раз нажав на кнопку “Следующий совет”.

Некоторые объекты на рабочем столе выглядят, как ярлыки, но не обладают всеми их свойствами. Это – системные объекты рабочего стола, Мой компьютер, Корзина, Сетевое окружение, Входящие, Портфель. Ни у одного из них, используя стандартные средства, нельзя изменить иконку, а Корзину к тому же нельзя переименовать. Поэтому если вы захотите произвести какие-либо действия над ними, вам придется покопаться в файле регистрации. Войдите в раздел HKEY_CLASSES_ROOT\CLSID и найдите там раздел, соответствующий интересующему вас элементу (см. табл. 3). Название системного объекта (в случае с Корзиной) хранится в параметре по умолчанию. Иконка – в параметре по умолчанию подраздела DefaultIcon. Параметры иконки определяются именем файла и стоящим после него через запятую номером (в одном файле может содержаться несколько иконок, поэтому требуется указывать номер). Определить этот номер можно следующим образом: надо создать какой-нибудь ярлык на Рабочем столе, затем в Свойствах ярлыка нажать кнопку Сменить значок, после этого в диалоге найти файл и просмотреть содержащиеся в нем иконки, запомнив порядковый номер понравившейся. После того, как вы внесли изменения в реестр, выйдите из редактора и нажмите F5 – иконки на рабочем столе обновятся в соответствии с произведенными вами изменениями.


Таблица 3. Где в реестре хранятся настройки системных объектов

Название раздела в
HKEY_CLASSES_ROOT\CLSID

Соответствующий системный
объект рабочего стола

{20D04FE0-3AEA-1069-A2D8-08002B30309D}

Мой компьютер

{85BB9\D920-42A0-1069-A2E4-08002B30309D}

Портфель

{645FF040-5081-101B-9F08-00AA002F954E}

Корзина

{208D2C60-3AEA-1069-A2D7-08002B30309D}

Сетевое окружение


Если вам не нравится желтая иконка, создаваемая для папок на Рабочем столе, ее тоже можно заменить. Имя файла, содержащего иконку по умолчанию, содержится в параметре по умолчанию раздела HKCR\Folder\DefaultIcon. Согласитесь, что использовать иконки, каждый раз запоминая их порядковый номер, не очень-то удобно. А если чуть-чуть подредактировать реестр, то можно использовать и обычные bmp-файлы в качестве иконок. Для этого надо войти в раздел HKCR\Paint.Picture\DefaultIcon. (Если подраздела DefaultIcon не существует, его надо создать.) В разделе DefaultIcon параметр по умолчанию надо сделать равным “%1”. Теперь вы сможете рисовать собственные иконки в обычном графическом редакторе и размещать их на рабочем столе.

Если вам не требуются на рабочем столе иконки системных объектов, вы вообще можете убрать их. Для этого надо войти в раздел системного реестра HKLM\Software\Microsoft\Windows\ CurrentVersion\Explorer\NameSpaces и удалить оттуда подразделы с названиями, соответствующими не нужным вам объектам (см. табл. 3).

В Windows есть недокументированная возможность существенно ускорить работу кнопки Пуск. Всего-навсего добавьте в раздел HKCU\ControlPanel\Desktop подраздел MenuShowDelay и установите значение его параметра по умолчанию равным единице. Если же вы вдруг захотите уменьшить скорость, увеличьте значение на несколько единиц. Максимально возможная величина – 10.

Когда вам набьет оскомину манера Windows 95 “важно” открывать и закрывать окна, запустите редактор реестра. Войдите в раздел HKCU\ ControlPanel\Desktop\WindowMetrics. Создайте тут новый строковый параметр с именем MinAnimate. Задайте ему значение 0 для отключения анимации или 1 для включения. Закройте regedit и перезагрузите компьютер.

Вы должны были заметить, что имена файлов Windows 3.х не транслируются в новую систему длинных имен Windows 95. Чтобы они все же выглядели менее загадочными, можно воспользоваться одной из возможностей, предлагаемых системным реестром. Откройте раздел HKLM\System\CurrentControlSet\Control\FileSystem. Создайте здесь новый двоичный параметр и назовите его NameNumericTail. Его значение должно быть нулевым. Перезагрузите компьютер. Многим не нравятся стрелочки, которые Windows добавляет к ярлыкам на Рабочем столе. Если вас они тоже не устраивают по какой-либо причине, то вы можете убрать их раз и навсегда. Для этого в системном реестре войдите в раздел HKEY_CLASSES_ROOT, спуститесь к разделам “.lnk” и “.pif” и удалите их подразделы под названием IsShortcut. После перезагрузки стрелочки могут появиться на несколько секунд, но потом пропадут.

И, наконец, одна из самых полезных возможностей, доступных через системный реестр, – возможность работы с шаблонами файлов прямо из выпадающего меню Windows 95. Например, вы создали в Блокноте (Notepad) некий образец письма, который вы хотите постоянно использовать.

Сохраните его, к примеру, в каталоге Windows как template.txt. Теперь запустите редактор системного реестра и в разделе HKEY_CLASSES_ROOT найдите раздел “.txt”. Откройте его и войдите в подраздел ShellNew. Здесь переименуйте параметр NullFile в FileName. Присвойте ему в качестве значения путь к файлу с шаблоном. Теперь закройте редактор реестра и щелкните правой кнопкой на Рабочем столе. В выпадающем меню выберите Создать и Текстовый файл. Откройте появившийся на Рабочем столе новый файл – он уже содержит в себе набранный нами текст!


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


 

Разделы
- Главная
- Windows 95
- Windows 98
- Windows ME
- Windows XP
- Разное
- Программы
- Приколы
- Ссылки
- Форум
Хостинг от uCoz