Windows 9x

Тайны системного реестра

Эта статья посвящена одной из самых загадочных и пугающих многих пользователей части операционной системы Windows - системному реестру. О том, что "что-то такое под названием реестр" существует, слышали все, кто хотя бы иногда читает компьютерную литературу.

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

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

Системный реестр Windows - это большая база данных, в которой записаны настройки как самой операционной системы, так и приложений, в ней установленных. Параметры устройств, сканеров, принтеров, плат, находящихся в компьютере, соединений удаленного доступа и учетных записей почты, информация о связях файлов с программами, об открытых окнах, установленных шрифтах, расположение значков на Рабочем столе, цветовые схемы Windows, настройки программ, локальной сети и Internet и др.- все это хранят в себе глубины реестра. Без него операционная система неработоспособна. Многие компоненты реестра изменяются самостоятельно по приказам операционной системы или программ, некоторые можно настроить с помощью диалоговых окон (скажем, назначение цветовой или звуковой схемы), но большая часть их недоступна для изменения из стандартных средств Windows. Статья посвящена рассказу о структуре системного реестра, о принципах работы с ним, а также содержит в себе информацию о скрытых настройках, использование которых может дать вам в руки ключи власти почти над всей операционной системой.

Физически реестр располагается в двух файлах в каталоге Windows (далее именно так будет обозначаться папка, в которую установлена операционная система - название этого каталога на вашем компьютере может быть другим) - System.dat и User.dat. Файлы System.da0 и User.da0 (на конце - цифра ноль) являются резервными копиями реестра, которые создаются каждый раз после успешной загрузки компьютера, а в случае неудачи при загрузке могут быть помещены на место поврежденных файлов реестра.

Сам системный реестр состоит из двух частей. Первая - файл System.dat - содержит информацию, общую для всех пользователей данного компьютера: параметры устройств, настройки некоторых программ и др. Вторая же часть - User.dat - является специфичной для каждого пользователя, храня его настройки. Оба файла имеют атрибут "Скрытый". Если на компьютере зарегистрировано несколько пользователей, то в папке Windows\Profiles хранятся в отдельных каталогах "личные" файлы каждого: содержимое Рабочего стола, главное меню и др., а также часть User.dat системного реестра. В папке Windows тоже хранится файл User.dat, содержащий настройки системы по умолчанию (то есть те, которые будут загружены, если в ответ на запрос имени пользователя и пароля нажать клавишу Esc). При загрузке компьютера после ввода имени пользователя файл User.dat из каталога этого пользователя вместе с System.dat и User.dat из каталога Windows загружается в память и "склеивается" с ними в единое целое.

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

Меры предосторожности

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

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

1. Скопируйте дистрибутив Windows на жесткий диск и сделайте загрузочную дискету. Дело в том, что в любом случае восстановление Windows придется вести из режима командной строки, а в таком случае доступ к CD-ROM будет невозможен, если не загрузить драйвера для него. Последнее же сделать не всегда возможно, так что спокойнее и надежнее будет иметь дистрибутив Windows на жестком диске.

2. Установите на жесткий диск в новую папку в корневом каталоге Norton Commander для MS DOS версий 3.0 или 5.0 либо Volkov Commander. Если вы не знакомы с этими программами, то изучите их возможности и приемы работы. Копировать и переименовывать файлы все же приятнее из псевдографической оболочки, чем из командной строки. Впрочем, это - по желанию.

3. Самый важный шаг. Найдите в каталоге с операционной системой файлы System.dat и User.dat. Скопируйте их, скажем, в корневой каталог или любой другой (желательно, располагающийся поближе к корневому и с именем не длиннее восьми символов). Можно в каталог с Norton Commander. Можно скопировать в два каталога, если места не жалко. Если хотите, назовите эти файлы именами не длиннее восьми символов.

По окончании процесса список резервов должен выглядеть, например, так:

  • папка Win95rez в корневом каталоге с дистрибутивом Windows;
  • папка VC в корневом каталоге с Volkov Commander;
  • файлы system.da_ и user.da_ в корневом каталоге;
  • файлы system.da_ и user.da_ в каталоге VC.

На этом процесс резервирования закончен. Можно смело приступать к экспериментам.

Если ваш компьютер сконфигурирован для работы на нем нескольких пользователей, то алгоритм действий будет такой же, только к копируемым файлам еще придется прибавить свой User.dat - из каталога Profiles\Имя.

Если катастрофа все же происходит, и при загрузке операционной системы вы видите сообщение: "Системный реестр поврежден", или "Невозможно загрузить драйвер…", или что-нибудь подобное, то действия должны быть следующими:

1. Нажать кнопку Reset.

2. При появлении строчки Starting Windows 95 нажать кнопку F8. В появившемся меню выберите пункт Command Prompt Only и дождитесь появления системного приглашения. Если у вас компьютер настроен так, что на F8 он не реагирует, то вставьте в дисковод загрузочную дискету и загрузитесь с нее.

3. С помощью команд "cd имя_каталога" (переход в нужный каталог) или "cd .." (переход на один уровень выше) доберитесь до директории с Norton или Volkov Commander. Запустите эту оболочку.

4. Зайдите для начала в папку с операционной системой, сотрите там файлы System.dat и User.dat, а затем переименуйте файлы System.da0 и User.da0 в System.dat и User.dat. Для начала надо попробовать использовать автоматически зарезервированные копии - там сохранены самые последние настройки.

5. Перезагрузите компьютер кнопкой Reset (без дискеты). Если Windows загружается без проблем, то все нормально, продолжайте работать или экспериментировать. Если же нет, то пришло время воспользоваться резервной копией реестра.

6. Повторите шаги 1-3. Но теперь уже скопируйте ваши резервные файлы реестра (в вышеприведенном примере - system.da_ и user.da_) из корневого каталога в папку с операционной системой, сотрите там файлы System.dat и User.dat, а затем переименуйте файлы System.da_ и User.da_ в System.dat и User.dat. Снова перезагрузитесь.

7. Если опять операционная система не загружается, попробуйте заменить, как описано в шаге 6, файлы System.dat и User.dat из каталога с операционной системой файлами из второй резервной копии, если она есть. Может быть, на жестком диске возник сбойный кластер, и пришелся он как раз на первую резервную копию.

8. Если и на этот раз Windows не загрузилась - то, увы, переустановка неизбежна. По всей видимости, повредился какой-то системный файл, не реестр. В этом случае ваши эксперименты над реестром не были причиной сбоя. Вытаскивайте из папки Program Files и каталога с операционной системой все мало-мальски для вас ценное (не забудьте эвакуировать все нужное из папки "Рабочий стол", или Desktop в английской версии,- там находится все содержимое вашего Рабочего стола, а также из каталога Profiles, если таковой существует - чтобы спасти файлы остальных пользователей, и из папки Applications Data в каталоге с Windows - там находятся папки с почтой Outlook Express, а также шаблоны Word), стирайте вышеперечисленные директории (не забудьте предварительно снять со всех файлов в них атрибут "Только чтение", а иначе замучаетесь подтверждать каждое удаление), удалите папку Recycled и запускайте setup.exe из каталога с дистрибутивом Windows. Ну а далее, как обычно при установке. Когда установите систему и все программы, не забудьте сделать новые копии реестра.

Время от времени резервирование реестра надо повторять. Делать это следует в следующих случаях.

1. Когда вы установили новую большую программу и убедились, что она работает. Большие программные пакеты, например Microsoft Office или Intermet Explorer, делают при установке большое количество записей в реестре и могут отказаться работать, если впоследствии их не обнаружат. Если вы выполните описанную выше переустановку реестра, то вам придется переустановить и все эти программы.

2. Когда проводите нужное вам редактирование реестра, и оно оказывается успешным.

3. Когда добавляете новые учетные записи в Outlook Express, The Bat!, в ftp-менеджеры и почтовые клиенты, и эти записи вам крайне необходимы. Они хранятся в системном реестре и в случае его замены пропадут.

4. Когда регистрируете некоторые из программ, записывающие свой регистрационный код в реестр. В этом случае после переустановки реестра они окажутся снова нерегистрированными.

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

6. Когда вы установили новое устройство.

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

Существуют специальные программы, предназначенные для автоматического восстановления реестра, и их много. Первая, доступная каждому, у кого установлена операционная система Windows 98,- это утилита из ее дистрибутива под названием scanregw.exe (размер - всего 84 Кбайт). Она, во-первых, проверяет системный реестр на ошибки и исправляет их при необходимости, а во-вторых, копирует файлы реестра, а также файлы win.ini и system.ini, содержащие важные настройки системы, в папку Sysbackup, заархивировав их в файл типа .cab (что уменьшает их объем раза в четыре). Потом из режима командной строки реестр можно восстановить, запустив эту программу. Если у вас все еще установлена Windows 95, то просто вытащите с помощью программы WinZip версии 7.0 и выше файл scanregw.exe из одного из файлов .cab дистрибутива Windows 98 (у меня он был в файле Win98_44.cab) и поместите, куда сочтете нужным,- эта программа прекрасно работает и в Windows 95.

Предприняв все вышеперечисленные меры предосторожности, можно смело начинать подчинять себе компьютер.

Редактор реестра

Сами по себе файлы реестра являются двоичными. В этом может убедиться каждый, открыв копию, скажем, User.dat в текстовом редакторе Microsoft Word. Но в составе Windows есть специальная программа - "Редактор реестра", которая представляет системный реестр в виде, удобном для восприятия. Запускается она файлом regedit.exe из каталога Windows.

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

При запуске regedit.exe перед пользователем предстает иерархическая структура системного реестра, несколько похожая на Проводник. В левой части окна программы расположено дерево разделов, а в правой отображаются параметры (другое название - "ключи") и их значения, если они присутствуют в разделе. Все разделы являются подразделами пиктограммы "Мой компьютер" в окне реестра. При работе в сети на основе Windows есть возможность редактировать реестры на удаленных компьютерах, и с помощью меню "Реестр" к редактору подключаются сетевые реестры.

Вся навигация в Редакторе реестра аналогична таковой в Проводнике. Единственное отличие - в правой части окна редактора никогда не появляются пиктограммы разделов. Нажатиями на знак "+" или двойными щелчками на пиктограммах разделов можно добраться до любого раздела и ключа. Чтобы переименовать раздел или параметр, нужно выбрать соответствующий пункт из контекстного меню или нажать F2. Изучить возможности Редактора реестра не составит труда. Также есть функция поиска названия раздела, ключа или его значения.

В Редакторе реестра имеется возможность записать всю древовидную структуру реестра в текстовый файл (с расширением .reg), например, чтобы потом ее изучить или сравнить с другой. Для этого служит команда "Экспорт файла реестра" из меню "Реестр". Записывается в файл вся база целиком или лишь выделенный раздел, для чего следует отметить специальный пункт в окне экспорта реестра.

При редактировании имейте в виду, что команды "Отменить" в Редакторе реестра нет. Так что удаление раздела или параметра будет необратимым.

Обзор системного реестра

Все записи в реестре подразделяются на три типа. Разделы - некое подобие папок Проводника: они могут содержать в себе другие разделы, а также параметры. Параметры - это то, что может содержаться в разделе. Они могут быть трех типов: строковые - обычная текстовая строка, двоичные - число в двоичной системе счисления (в реестре оно хранится в двоичной системе, но вот отображается всегда в шестнадцатеричной - парадокс!) и типа Dword - число в десятичной или шестнадцатеричной системе (вводить можно в любой - во вторую систему число преобразуется автоматически). У ключа может быть (а может и не быть) значение только того типа, который для него допустим.

Если посмотреть в левое окно редактора, то может показаться, что системный реестр компьютера состоит из шести подразделов. Однако это не совсем так. Дело в том, что Редактор реестра интерпретирует содержимое реестра так, чтобы его было удобно смотреть и исправлять. В связи с этим некоторые разделы в редакторе дублируются. На самом деле реестр состоит всего из двух разделов - HKEY_LOCAL_MACHINE (содержится в файле System.dat) и HKEY_USERS (содержится в загруженных файлах User.dat). И именно их вы увидите, если экспортируете весь реестр в текстовый файл и его просмотрите. Поскольку сам реестр содержит в себе лишь два раздела, а его разложение на шесть производится исключительно в Редакторе реестра, все изменения, сделанные в одном из дублированных разделов, автоматически будут сделаны и в другом - не из-за действий редактора, а из-за того, что это один и тот же раздел, просто два раза отображенный. Но все по порядку.

Сокровищница имен

Раздел HKEY_CLASSES_ROOT является точной копией раздела HKEY_ LOCAL_MACHINE\SOFTWARE\Classes и содержит в себе информацию о всех зарегистрированных в системе типах файлов. Именно из этого раздела берется информация для представления в окне "Типы файлов". Но хранится информация о зарегистрированных расширениях весьма своеобразно и сложно. Вначале в разделе HKEY_CLASSES_ROOT идет список всех расширений (с точками вначале!), зарегистрированных в системе, каждое из которых является названием раздела реестра. В каждом таком подразделе обязательно есть параметр "По умолчанию". В нем записано как бы "внутреннее" название расширения, которое "в ходу" у системы. В разделе HKEY_CLASSES_ROOT также присутствует раздел с именем этого внутреннего названия расширения (расположенный ниже в окне Редактора реестра), в котором находятся параметры, определяющие контекстное меню правой кнопки мыши этого расширения. В параметре "По умолчанию" этого раздела записано "официальное" название типа файлов с таким расширением, которое, например, присутствует в списке окна "Типы файлов".

В разделе, имя которого соответствует расширению с точкой вначале, также могут находиться различные ключи, определяющие интеграцию данного типа файлов в Проводник. В частности, если создать здесь раздел с именем, соответствующим внутреннему названию расширения, а в нем - раздел с именем ShellNew со строковым параметром NullFile, то в выпадающий список "Создать" будет помещено "официальное" название типа файлов. При выборе в списке этого типа будет создан пустой файл с расширением, соответствующим этому названию. Если в папку Windows\ShellNew поместить файл с этим расширением, а в разделе ShellNew создать не параметр NullFile, а параметр FileName и в его значении указать имя этого файла, то при выборе этого типа файлов в списке "Создать" в текущей папке будет создана копия файла, помещенного в папку Windows\ShellNew.

В разделе с именем "внутреннего" названия расширения могут находиться разделы DefaultIcon, параметр которого "По умолчанию" определяет иконку этого типа файлов и shell, в котором располагаются команды контекстного меню правой кнопки мыши данного типа файлов. Название действия, которое отображается в контекстном меню, может быть либо названием подраздела раздела shell, либо значением параметра "По умолчанию" этого подраздела (в последнем случае название самого подраздела не имеет значения). В разделе с именем команды контекстного меню располагается подраздел command В параметре "По умолчанию" там указан полный путь к программе, которая должна выполнить данное действие.

Все вышеизложенное несколько трудно для восприятия, но, увы,- это так. Приведена же здесь эта информация для того, чтобы вы поняли назначение различных групп разделов реестра. Кроме того, из нее вытекают несколько практических выводов. Теперь вы можете свободно редактировать выпадающее меню "Создать". Для удаления лишних пунктов оттуда надо просто провести поиск по словам FileName или NullFile и удалить ключи ShellNew в тех найденных разделах, которые не нужны. Вы можете удивиться, найдя очень много параметров FileName и NullFile, причем в разделах типов файлов, которые не присутствуют в меню "Создать". Это чаще всего остатки предыдущих инсталляций программ. Дело в том, что для того, чтобы название типа файлов появилось в меню "Создать", требуется правильное оформление всех частей реестра, посвященных данному типу: и раздел с "внутренним" именем, и раздел shell, и в нем обязательно - раздел с именем open и т. д. Ну а для добавления какого-либо пункта в меню "Создать" нужно найти раздел с именем нужного расширения и добавить в него подразделы с его "внутренним" именем и именем ShellNew, а там - указать параметр NullFile (или FileName с именем файла). Ну и, естественно, проверить наличие и правильность оформления раздела с "внутренним" именем этого расширения.

"Обломки" инсталляций - разделы с именами типов файлов - могут, к примеру, образоваться так. Программа Microsoft Photo Editor при своей установке поместила в реестр записи о том, что файл с расширением .gif имеет "внутреннее" имя giffile, создала под него в реестре два раздела - .gif и giffile, прописав там все, что нужно. При установке программы ACDSee она в разделе .gif заменила "внутреннее" имя этого типа на свое - ACDSee.GIF и создала под него раздел с этим именем, куда и разместила свои команды. А прежний-то раздел, giffile, остался! Но он теперь уже не соответствует никакому типу файлов, т. к. ни у одного расширения нет такого "внутреннего" имени. После длительной эксплуатации системы таких кусков накапливается достаточно много. Поэтому поиск нужного раздела надо начинать именно со списка расширений, а потом уже переходить к списку "внутренних" имен, узнав нужное.

В некоторых разделах, посвященных типам файлов, можно найти еще и другие подразделы. Например, раздел ddeexec в подразделе с именем команды раздела shell какого-либо типа файлов содержит те команды DDE, которые должны использоваться. Некоторые программы способны воспринимать команды операционной системы при открытии того или иного типа файлов и, к примеру, открывать их не в новом окне, а в своем подокне. Это называется Dynamic Data Exchange, DDE - динамический обмен данными. Иногда встречаются параметры Content Type. Это - указания Internet-броузеру на тот случай, если он встретит подобный файл в Сети. Новые файлы определенных типов, скажем, ярлыки, создаются не с помощью копирования пустого файла из папки Windows\ShellNew, а командой какой-либо программе. В этом случае вместо ключа FileName в разделе ShellNew этого типа файлов будет находиться параметр Command с соответствующей командой. Существуют и другие возможные виды разделов, но подробное их описание выходит за рамки статьи.

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

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

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

Пользовательский модуль

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

В разделе AppEvents записана информация о звуковых схемах и назначенных звуках в системе. Именно здесь хранятся те данные, что вы вводите в диалоге "Звук" Панели управления.

Раздел Clock, как нетрудно понять, посвящен часам - именно тем, что находятся в углу панели задач. Здесь - все их параметры.

Раздел Control Panel содержит в себе информацию о настройках внешнего вида операционной системы. Это, пожалуй, один из самых интересных разделов реестра, т. к. именно здесь настраиваются разного рода "красивости" интерфейса Windows. Подраздел Appearance содержит в себе информацию о всех возможных цветовых схемах. Эти схемы закладываются в реестр при его создании и именно отсюда берутся данные для окна "Свойства экрана - Оформление". В подразделе Colors расположена информация об оформлении стандартных элементов интерфейса Windows - границ окон, поверхности кнопок и их краев, заголовка окна, линеек прокрутки и др. Все цвета представлены в виде трех чисел интенсивности красного, зеленого и синего. Некоторые из этих параметров могут быть заданы при создании цветовой схемы, а некоторые - изменены только в реестре. Если хотите, можете немного поиграть с интерфейсом вашей системы.

В подразделе Cursors хранится информация о выбранном наборе изображений курсора и о всех стандартных наборах таких изображений.

Подраздел Desktop и его внутренние разделы посвящены оформлению Рабочего стола. Здесь находится информация о шрифтах окон и меню, отображении линеек прокрутки. Однако большую часть параметров этого подраздела крайне желательно изменять не из редактора реестра, а из стандартных диалоговых окон, т. к., в частности, запись используемых шрифтов здесь ведется в своем особом формате. Некоторые параметры вполне могут корректироваться и впрямую в реестре - скажем, если вы хотите "снести" пароль скринсейвера, поставьте значение параметра ScreenSaveUsePassword в 0 (сам пароль хранится в параметре ScreenSave_Data). А если вы хотите растягивать обои Рабочего стола на весь экран, добавьте в раздел DeskTop параметр WallpaperStyle и поставьте его значение в 2, а параметр TileWallpaper - в 0.

Другие подразделы раздела Control Panel имеют чисто служебное значение. Там могут храниться данные о назначении кнопок мыши и др.

Раздел Identities, если он у вас есть, используется почтовой программой Outlook Express для хранения информации об имеющихся идентификационных записях (попросту - своих пользователях). Здесь расположены настройки Outlook Express для каждого из пользователей. Например, в одном из многочисленных разделов этой части реестра можно найти параметр WindowTitle (а можно и не найти). Именно в нем записана та строка, которая отображается в заголовке Outlook Express, на самой верхней синей полосе окна. Также в этом разделе хранится информация о всех учетных записях почты и новостей всех пользователей Outlook Express, за исключением активного - того, на которого Outlook Express была настроена при последнем выходе.

Раздел Keyboard layout посвящен раскладкам клавиатуры, а InstallLocationsMRU - путям к некоторым драйверам. Оба раздела - чисто служебные и особого интереса не представляют. В разделе Network находятся параметры локальной сети, если компьютер к ней подключен. Изменять параметры всех этих разделов из редактора реестра не стоит.

В разделе RemoteAccess записано то, что почти всегда представляет огромный интерес для хакеров,- параметры соединений удаленного доступа: имена соединений, телефоны, некоторые настройки, а также логины и пароли. (Надеюсь, вы понимаете, что хранить свой пароль для входа в Internet здесь не стоит - уж лучше вводить каждый раз с клавиатуры! Ведь любой, получивший доступ к вашему реестру, может экспортировать этот раздел себе на дискету и внести все ваши логины и пароли в свой реестр.)

В HKEY_CURRENT_USER могут быть и другие разделы, созданные разными установленными программами.

И наконец, последний и наиболее обширный раздел - это раздел Software. Параметры установленных программ - в т. ч. и самой Windows! Однако свои параметры в этот раздел пишут не все программы, а лишь те, которые поддерживают многопользовательский режим, т. е. допускают различные свои настройки для разных пользователей Windows. (Остальные размещают свои данные в аналогичном разделе ключа HKEY_LOCAL_MACHINE.) В самом разделе Software полагается помещать не подразделы с названиями программ, а подразделы с названиями их фирм-производителей, а уже лишь в них - названия программ. (Это правило, впрочем, не всегда соблюдается программистами.)

В подразделе Microsoft расположены настройки установленных на компьютере программ, выпущенных этой фирмой. В его подразделе Internet Account Manager находятся настройки учетных записей текущего пользователя программы Outlook Express. Рядом с ним можно видеть подраздел с именем этой программы, тоже полный разнообразных настроек. При смене текущего пользователя Outlook Express содержимое этих разделов заменяется на соответствующее из раздела HKEY_CURRENT_ USER\Identities. Рядом - раздел Internet Explorer: чьи настройки там находятся, думается, ясно.

Для того чтобы через целый лес из имен программ и фирм добраться до настроек вашей операционной системы, найдите в разделе Software подраздел Microsoft, а в нем - подраздел Windows. Там откройте подраздел CurrentVersion (обычно он один). И вот перед вами еще один блок настроек операционной системы! Количество подразделов здесь может варьировать в зависимости от "навороченности" вашей Windows: и Internet Explorer, и MS Office могут добавить сюда пару-тройку компонентов.

В подразделе Applets (ключа HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion, если вы еще не забыли) расположены настройки стандартных программ Windows. Тут и старые знакомые Defrag и FreeCell, Hearts и Paint, и System Monitor с Media Player. Иногда вы можете найти параметры с названиями вроде WindowOriginY или просто Y или X. Это записано местоположение окна программы при последнем выходе из нее, чтобы при следующем запуске оно располагалось на том же самом месте, что и в прошлый раз. А вас никогда эта способность Windows не удивляла?..

В подразделе Internet Settings вы также встретите некоторые свои настройки броузера Internet Explorer. С ними особо разбираться не следует: все равно все настраивается через диалоговые окна самого броузера.

В подразделе Policies можно запретить интерфейсу Windows отображать определенные свои компоненты. Установив параметр NoNetHood раздела Explorer в 1, вы скроете пиктограмму Сетевого окружения с Рабочего стола. А установив параметр NoDispScrSavPage раздела System в 1, вы запретите отображать вкладку установки скринсейвера в Свойствах экрана, тем самым в определенной степени предотвратив чью-нибудь злую шутку по установке пароля на скринсейвер в ваше отсутствие. В принципе названия почти всех параметров в этом разделе вполне понятны. Только не ставьте параметр DisableRegistryTools в 1 - после этого вы больше regedit.exe запустить не сможете. Придется восстанавливать реестр как после краха системы или писать специальный .reg - файл для удаления этого параметра…

Подраздел Run - это то место, которое вам надо посещать как можно чаще. Это одно из двух мест в системном реестре, где прописаны пути к автозагружаемым программам. Указав здесь путь к программе, вы добьетесь того, что она будет загружаться каждый раз при запуске Windows. Этим часто пользуются троянские программы для своего автоматического запуска при загрузке компьютера (чтобы, скажем, при установлении соединения с Internet отправить своему создателю ветвь HKEY_CURRENT_USER\RemoteAccess вашего реестра, а вместе с ней все логины и пароли). Поэтому, если вы здесь обнаруживаете запись, указывающую на подозрительный файл, смело удаляйте или хотя бы попробуйте выяснить, откуда эта программа и что она делает. Однако это не единственное место автозапуска программ - аналогичный раздел есть и в HKEY_LOCAL_MACHINE.

Расположенный рядом подраздел RunOnce отличается от подраздела Run тем, что программы, пути к которым записаны в нем, запустятся всего лишь один раз, после чего их имена отсюда будут выкинуты. Этим ключом часто пользуются деинсталляторы - вы ведь наверняка видели сообщение, что "для завершения деинсталляции требуется перезагрузка компьютера"? При этом деинсталлятор прописывает сюда код для удаления оставшихся файлов, которые до перезагрузки использовались операционной системой и потому удалены быть не могли. Троянцы могут прописываться и здесь, так что регулярно просматривать этот подраздел - дело полезное.

Подраздел Explorer - самый большой из всех подразделов CurrentVersion. Это параметры, пожалуй, самой используемой программы из поставки Windows - Проводника. В нескольких его подразделах размещается информация, местонахождение которой вы, наверняка, давным-давно хотели узнать.

Вас никогда не интересовало, каким образом Windows сохраняет информацию о расположении значков на Рабочем столе и в папках, которые вы оставили открытыми, выходя из Windows? Загляните в подраздел Streams. Видите там 200 подразделов? Это - заготовки для сохранения информации о расположении значков. В некоторых из подразделов находятся параметр ViewView. Здесь такая информация уже внесена для будущего применения. Открыв этот параметр двойным щелчком мыши, можно увидеть длинное шестнадцатеричное число, а справа - его "перевод" на обычный символьный язык. И среди мешанины символов будут видны (конечно, не у всех таких параметров) имена ваших файлов, находящихся в какой-то одной папке. Значит, именно в этом разделе хранится информация о расположении значков в ней. Вы можете найти раздел с параметром ViewView, содержащим имена файлов на вашем Рабочем столе, экспортировать его в файл реестра и затем импортировать обратно при необходимости восстановить расположение иконок на экране. Но такой экспорт надо будет производить после каждого изменения расположения или состава значков Рабочего стола.

В подразделах RunMRU и Doc Find Spec MRU содержится то, что вы когда-либо вводили в окна "Выполнить…" и "Найти". Почистите эти разделы или, наоборот, дополните их согласно необходимости, если желаете. В подразделах Shell Folders и User Shell Folders содержится информация о расположении служебных папок Windows, например Cookies или History. Если вы пожелаете переместить их в другое место или переименовать, то внесите сюда соответствующие изменения.

Остальные подразделы и параметры подраздела Explorer настраивают мелкие особенности Проводника.

Большинство других подразделов в CurrentVersion являются чисто служебными и особого интереса не представляют. Там записаны параметры некоторых программ из поставки Windows - и не более того. Хотя не забудьте глянуть в ProfileReconciliation, если будете через реестр менять расположение папок Cookies и History.

В разделе HKEY_CURRENT_ USER\Software\VB and VBA Program Settings по умолчанию располагаются настройки для всех программ, написанных на языках Visual Basic и VBA. Поэтому загляните и сюда, если вы не нашли имени интересующей вас программы в остальной части раздела Software.

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

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

Недавно мы начали знакомить вас с одной из самых загадочных и пугающих для многих пользователей частей операционной системы Windows - системным реестром. Ныне мы публикуем окончание статьи.

Системный блок

Следующий раздел реестра - HKEY_LOCAL_MACHINE, хранилище информации о вашем компьютере и о независимых от наличия различных пользователей настройках программ. Он самый крупный и самый важный из всех разделов реестра. При этом он содержит в себе, в одном из своих подразделов, и весь HKEY_CLASSES_ROOT, который вынесен в отдельный ключ реестра лишь для удобства редактирования, и все возможные варианты содержимого раздела HKEY_CURRENT_CONFIG, в который помещается информация из HKEY_LOCAL_MACHINE в зависимости от текущей аппаратной конфигурации. Как HKEY_LOCAL_MACHINE в Редакторе реестра отображается файл System.dat, то есть вся информация этого ключа физически содержится именно в этом файле. Таким образом, HKEY_LOCAL_MACHINE - первый из описанных "реальный" раздел реестра, то есть имеющий под собой "физическую природу" - файл System.dat. (HKEY_CLASSES_ROOT и HKEY_CURRENT_CONFIG - его подразделы, а с HKEY_CURRENT_USER - подраздел HKEY_USERS, второго "реального" раздела реестра).

Подраздел Config содержит в себе данные о зарегистрированных в системе аппаратных конфигурациях. Windows позволяет при регулярных изменениях состава устройств в компьютере (например, при работе с ноутбуком, который имеет "док" - присоединяемую часть с CD-ROM, модемом и др.) не устанавливать и удалять каждый раз драйверы для всех этих устройств, а создать фиксированный набор драйверов для каждого и менять эти наборы при необходимости. Такой набор называется аппаратной конфигурацией и устанавливается через окно Панель управления - Система - Конфигурации (рис. 1).

В настоящее время в связи с развитием новых технологий USB и др. устройств "горячего подключения" необходимость в различных аппаратных конфигурациях почти отпала, но их поддержка в Windows присутствует. (В каталоге Windows есть файл tips.txt, в нем приведен пример создания нескольких аппаратных конфигураций для ноутбука.) В ключе Config под своими номерами располагаются записи о всех созданных конфигурациях, а при загрузке компьютера или изменении конфигурации соответствующий раздел "отражается" в реестре под видом раздела HKEY_CURRENT_CONFIG. Если аппаратная конфигурация одна, то и в разделе Config есть только один подраздел, совпадающий с ключом HKEY_CURRENT_CONFIG. (Сами имена конфигураций, отображаемые в окне Система, хранятся в ключе HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\IDConfigDB вместе с номерами этих конфигураций.)

Подраздел DesktopManagement посвящен работе системы с библиотекой deskmgmt.dll из каталога Windows\System, отвечающей за работу операционной системы с процессором, памятью и другими устройствами материнской платы компьютера. Здесь записаны команды, обратившись с которыми из другой программы к этой библиотеке, можно получить соответствующие данные.

Подраздел Enum содержит информацию о распознанных операционной системой устройствах компьютера. В Windows есть несколько важных программных компонентов, отвечающих за обнаружение устройств и предоставление их для работы другим компонентам системы. Основными среди них являются два - диспетчер конфигурации и энумератор. При загрузке компьютера диспетчер конфигурации опрашивает BIOS и получает от него информацию о всех устройствах, не поддерживающих стандарт Plug&Play, а затем заносит ее в реестр, в этот самый раздел Enum. Затем в дело вступает программа-энумератор, которая считывает из реестра информацию о не-Plug&Play-устройствах, а затем опрашивает имеющиеся в компьютере Plug&Play-устройства и составляет список всех имеющихся, назначив каждому единственный идентификатор - HardwareID. Затем основная роль вновь переходит к диспетчеру конфигурации, который на основании информации энумератора о наличии устройств и их характеристике (Plug&Play или нет) распределяет между устройствами прерывания, адреса ввода-вывода и другие ресурсы системы. В этом ему помогают специальные подпрограммы "арбитры", которые изменяют выделяемые ресурсы так, чтобы не было, используемых одновременно двумя устройствами. Вначале распределяются ресурсы между не-Plug&Play-устройствами (информация о которых пришла еще из BIOS), а затем между Plug&Play, так как последние умеют работать с разными настройками распределения ресурсов без изменения своей аппаратной части, и переназначить им, например, прерывания можно программно. Все внесенные изменения фиксируются в разделе Enum, а также в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class, содержащем совокупность информации о распознанных устройствах, а также о загруженных для них драйверах, на подразделы с данными о которых в разделе Enum имеются ссылки.

Подраздел HKEY_LOCAL_MACHINE\Hardware, несмотря на громкое и многообещающее название, хранит в себе немного информации о последовательных портах и установленных на них модемах. Информация - на уровне перечисления имеющихся в компьютере портов и разъемов для модемов.

Подразделы Network и Security содержат малозначащие параметры сети Microsoft Network (интересно, в России кто-нибудь хоть когда-нибудь ею пользовался?).

И вот, наконец, второй подраздел Software, на этот раз уже состоящий из универсальной для всех пользователей данного компьютера информации! Как и ранее, он состоит из разделов с именами компаний-производителей с подразделами внутри них, посвященных отдельным программам. В разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft расположены настройки самой Windows и ее компонентов, а также всех программ Microsoft. Например, в подразделе Active Setup этого раздела находятся параметры системы установки компонентов Windows через Internet - Active Setup. В его подразделе Installed Components вы увидите все компоненты Internet Explorer, которые вы выбирали (или нет) при установке этого браузера. В подразделе Shared Tools раздела HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft находится список программ и библиотек пакета MS Office, которыми могут пользоваться другие компоненты этого пакета (скажем, "галерея клипов", которая может быть вызвана из любого приложения MS Office), с указанием пути к каждому из них. Но, конечно, как и в прошлый раз, самым интересным местом здесь будет подраздел Windows\CurrentVersion, относящийся к операционной системе. В самом CurrentVersion, даже не в его подразделах, есть весьма полезные параметры. Скажем, именно здесь находится информация, отображающаяся в верхней части окна Панель управления - Система - Общие (рис. 2).

Подраздел App Paths раздела CurrentVersion - это Windows'ский аналог параметра Path из файла autoexec.bat. Можно еще назвать его реестровым собранием ярлыков программ. Здесь можно указать пути к различным программам и имена для их запуска, а затем набирать эти имена в окне "Выполнить" для запуска этих программ, не заботясь об указании пути к ним (рис. 3).

Подраздел Explorer опять-таки посвящен программе "Проводник", но уже ее общим настройкам. В подразделах Desktop\NameSpace и Mycomputer\NameSpace находятся идентификаторы тех объектов, которые должны быть расположены на Рабочем столе и в папке "Мой компьютер", например, "Корзина" или "Удаленный доступ к сети". Вы можете удалить отсюда ненужные объекты или, наоборот, добавить сюда желаемые, создав вначале для них идентификаторы в разделе HKEY_CLASSES_ROOT, как описано на одной из врезок.

В параметрах подразделов LastCheck и LastOptimize (подраздела Explorer подраздела CurrentVersion) содержится информация о последнем моменте дефрагментации или проверки жестких дисков компьютера (рис. 4).

В подразделе Tips вы найдете все советы, отображающиеся при первом запуске компьютера с Windows95 (рис. 5). Их можно просмотреть и с помощью программы welcome.exe из каталога Windows.

Подраздел Fonts хранит в себе информацию об именах шрифтов и их соответствии названиям файлов. Вы, кстати, никогда не удивлялись, почему в "Проводнике" и в Norton Commander содержимое папки Windows\Fonts выглядит по-разному (рис. 6)? Да потому, что Norton Commander берет информацию об именах файлов в этой папке из FAT, а "Проводник" вот из этого раздела реестра. Почему копирование шрифтов в папку Fonts длится значительно дольше, чем в любую другую папку? Да потому, что еще в реестре их все надо прописать, да еще перед этим из каждого извлечь полное имя! Еще бы не дольше было…

В подразделе MS-DOS Emulation, в его подразделе AppCompat находится список программ MS-DOS, которые могут работать только в режиме MS-DOS, а не в окне "Сеанс MS-DOS" и требуют выгрузки Windows для своей работы (рис. 7).

Из следующего подраздела реестра, MS-DOSOptions, берутся параметры для диалоговых окон при настройке ярлыков программ MS-DOS для особой конфигурации режима MS-DOS. Именно с помощью этих параметров можно удобно настроить файлы autoexec.bat и config.sys для каждого ярлыка программы, работающей в режиме MS-DOS (рис. 8).

Подразделы Run, RunServices, RunOnce, RunOnceEx, RunServicesOnce содержат в себе указания на программы, которые должны запуститься автоматически при запуске Windows. В прошлом номере уже рассказывалось про аналогичный раздел в ключе HKEY_CURRENT_USER, программы в котором запускались при начале сеанса работы данного пользователя, ну а программы, указанные здесь, запустятся в любом случае. Почаще навещайте этот раздел - здесь могут прятаться "трояны"! (Три последних раздела из перечисленных запустят указанную в них программу лишь один раз.)

В подразделе Time Zones приведен список настроек всех возможных часовых зон из меню настройки местного времени (рис. 9). (Параметры же установленной временной зоны размещаются ниже, в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\TimeZoneInformation.)

Подраздел Uninstall (подраздела Explorer подраздела CurrentVersion) содержит в себе пути и параметры деинсталляторов для всех программ, которые допускают такую возможность. Именно отсюда берется информация для представления в окне Панель управления - Установка и удаление программ. Параметр DisplayName определяет название программы, которое в этом окне будет отображаться (рис. 10).

Ну а теперь закончим раздел Software\Microsoft\Windows\CurrentVersion и перейдем к самому последнему подразделу ключа HKEY_LOCAL_MACHINE - System, к его единственному подразделу CurrentControlSet. В этом подразделе содержатся два ключа: Сontrol и Services. Параметры этой части реестра не менее важны, чем, скажем, подраздела Enum, так как содержат в себе многие настройки системы. Но большая их часть - чисто служебная и изменять их через редактор реестра не стоит. Впрочем, лучше слегка пробежаться по наиболее интересным разделам.

В подразделе FileSystem записаны некоторые параметры работы операционной системы с носителями с другой файловой системой вроде CD-ROM.

Подраздел Keyboard layouts содержит список возможных раскладок клавиатуры и имена соответствующих им файлов с раскладками (установлены могут быть отнюдь не все эти файлы).

Подраздел Nls посвящен кодовым страницам, которые поддерживаются системой. В его подразделе Codepage каждому номеру кодовой страницы (например, "1251" - кодировка Windows-1251) поставлен в соответствие файл, содержащий информацию об этой кодовой странице, а в подразделе Locale - имена этих кодовых страниц.

Подраздел PerfStats посвящен состоянию системы и несколько подробнее описан ниже.

Подраздел SessionManager посвящен старым приложениям MS-DOS. В подразделе CheckBadApps содержится список программ MS-DOS, которые могут быть несовместимы с Windows. Наверное, вы пробовали из-под Windows запустить Norton Commander 5.0 и получали сообщение, что программа некорректно работает в этой операционной системе (рис. 12)?

Для каждой программы MS-DOS, при попытке запуска которой выдается такое сообщение, есть свой подраздел с именем ее запускающего файла в подразделе CheckBadApps, а в нем - параметр с именем запускающего файла (рис. 13), в котором указано число. Это число - указатель на номер справочного раздела в файле Apps.hlp из папки Windows\Help, в котором рассказано, почему данная программа некорректно работает в Windows.

Подраздел CheckBadApps400 имеет то же самое предназначение, что и предыдущий, но в нем размещены имена программ для Windows 3.х, а не для MS-DOS.

Подразделы подраздела SessionManager с буквами DLL в имени хранят в себе названия системных библиотек, с которыми работает Windows, в зависимости от имени раздела - 16- или 32-разрядных. А в подразделе WarnVerDLLs приводятся имена библиотек, совместимость которых с Windows вызывает у нее "подозрения".

Подраздел TimeZoneInformation (подраздела System\CurrentControlSet\control) хранит в себе информацию о текущей временной зоне.

В следующем большом подразделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services содержится в основном служебная системная информация. Некоторые из его подразделов очень важны для системы.

Подраздел Arbitrators содержит информацию программ-арбитров, о которых шла речь выше.

Подраздел Class перекликается по своему содержанию с описанным выше разделом HKEY_LOCAL_MACHINE\Enum, частично беря свои данные из него, и содержит в себе информацию об установленных и распознанных устройствах. Именно из него берется информация для отображения в окне Панель управления - Система - Устройства (рис. 14).

Таким образом, этот подраздел фактически является "реестром в реестре", базой данных по устройствам, железу, установленным в компьютере. В него включена информация, поставляемая энумератором и диспетчером конфигурации и записанная в разделе HKEY_LOCAL_MACHINE\Enum, а также данные о загруженных драйверах устройств и их параметрах (к примеру, строка инициализации модема помещается в ключе Class\Modem\0000\Init). Вспомните, кстати, что в Enum'е были ссылки на драйверы устройств вида Driver = DiskDrive\0001. Так вот это были ссылки именно на подразделы данного раздела Class, в чем нетрудно убедиться.

В разделах HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class и HKEY_LOCAL_MACHINE\Enum размещается информация лишь об имеющихся устройствах, об их характеристиках и назначенных ресурсах. Информация же о конкретной работе устройств, о том, исправны они или нет, находится в разделе реестра HKEY_DYN_DATA, который постоянно загружен в оперативной памяти.

Остальная часть раздела HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services содержит данные некоторых программ и особого интереса для пользователя не представляет.

Общий модуль

HKEY_USERS - второй "реальный" раздел реестра. Он состоит из одного или двух больших подразделов. В любом случае один из них называется .Default и является разделом HKEY_CURRENT_USER для конфигурации пользователя Windows по умолчанию (если в Windows зарегистрировано несколько пользователей, то ее можно загрузить, нажав Esc при запросе пароля на входе в Windows). Если в Windows зарегистрирован один пользователь, то раздел .Default будет единственным и совпадать с HKEY_CURRENT_USER (рис. 15), а если нет, то в HKEY_USERS будет еще один раздел, чье имя будет совпадать с именем текущего пользователя, и именно этот раздел будет отражен в реестре еще раз под именем HKEY_CURRENT_USER.

Ключи конфигурации

HKEY_CURRENT_CONFIG - это описание текущей конфигурации оборудования компьютера. Этот раздел является отражением одной из ветвей раздела HKEY_LOCAL_MACHINE\Config (рис. 16), в котором описаны все созданные в системе конфигурации оборудования. Сами они создаются с помощью диалогового окна Панель управления - Система - Конфигурации. Когда конфигурация меняется, меняется и содержимое раздела HKEY_CURRENT_CONFIG - он начинает "отражать" уже другую ветвь раздела HKEY_LOCAL_MACHINE\Config. Назначение отдельных разделов и параметров этого ключа практического интереса не представляет, так как редактировать эти данные лучше "законным" способом - с помощью диалоговых окон. Единственным следствием из всей этой информации может быть совет восстановить реестр из резервной копии, если в результате ваших экспериментов с созданием конфигураций компьютер стал неработоспособным.

Железный ключ

HKEY_DYN_DATA - пожалуй, самый недокументированный раздел реестра. Отчасти это объясняется тем, что данные в этом разделе создаются и корректируются автоматически. Любое вмешательство пользователя может лишь нарушить работу компьютера,- здесь нет ничего такого, что требовало бы необходимости редактирования через Редактор реестра. Интерес этот раздел представлял, скорее всего, лишь для разработчиков самой Windows на стадии ее отладки, а также, может быть, для разработчиков драйверов различных устройств компьютера. Но так как уж он присутствует в системном реестре, то и программа regedit.exe его отображает.

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

В разделе HKEY_DYN_DATA находятся два подраздела. Первый из них, HKEY_DYN_DATA\Config Manager\Enum посвящен состоянию железа компьютера. Если в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class расположена информация о том, какие устройства установлены в компьютере, то в этом разделе - данные о том, как они работают: исправно или нет. Информация в окне Панель управления - Система - Устройства формируется из содержимого обоих разделов.

Второй же раздел, PerfStats - это раздел статистики. Он связан (но не является отражением, как, скажем, HKEY_CLASSES_ROOT) с разделом HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\PerfStats (рис. 17) и содержит статистическую информацию по его параметрам. Можно сказать, что в HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\PerfStats перечислены параметры статистики системы, а в HKEY_DYN_DATA\PerfStats - их значения. Именно отсюда берет свои данные программа "Системный монитор".

Назначение раздела HKEY_DYN_DATA - постоянно находиться в оперативной памяти и поставлять системе информацию о состоянии устройств компьютера по первому ее требованию. Чтобы в этом случае не пришлось ничего загружать в память, а все там уже было. Можно было бы, конечно, перенести всю эту информацию в раздел HKEY_LOCAL_MACHINE, в соответствующие ключи, но тогда быстродействие системы бы серьезно замедлилось. А так - раздел не очень большой и не содержит в себе ничего, кроме данных для системы: ни названий, ни пояснений. Чисто служебная информация.

Возможно, конечно, что ваш реестр в деталях несколько отличается от структуры, которая была здесь описана. Это вполне естественно, так как содержимое реестра во многом зависит от набора программ, установленных на компьютере, да и от самой операционной системы. В Windows NT и Windows 2000 реестр весьма разнится от реестра операционных систем типа Windows 9x. Наличие или отсутствие установленных Microsoft Internet Explorer и Microsoft Office сильно влияют на состав реестровых ключей и параметров. Но общий план всегда одинаков.

Куски реестра в файлах

При экспортировании фрагмента реестра или его всего на жестком диске создается обычный текстовый файл с расширением .reg. Файл реестра имеет жестко регламентированную структуру. На рис. 18 показан пример раздела реестра и он же, экспортированный в текстовый файл.

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

Ниже команды Regedit4 находятся ключи, вносимые в реестр. Для каждого вносимого в реестр имени раздела должна быть выделена отдельная строка. Полное имя раздела (сокращения не допускаются) помещается в квадратные скобки. Имена параметров этого раздела приводятся по одному на строке, начиная за следующей сразу за именем раздела, в кавычках, рядом на той же строке - их значения. Значения строковых параметров должны приводиться в кавычках, значения параметров типа Dword - в виде шестнадцатеричной строки dword:00000000 (без кавычек), значения двоичных параметров - в шестнадцатеричной системе в виде строки hex:14,00,00,00 (без кавычек). Если в значении строкового параметра встречается символ "\", то он заменяется (в экспортированном файле реестра) на пару таких символов. Сам символ "\" используется для переноса слишком длинных строк. Имя каждого раздела или подраздела, вносимого в реестр, независимо от его иерархического расположения, должно писаться полностью и на отдельной строке. Между описаниями каждого из разделов и в конце файла должно находиться по одной пустой строке. Символ "@" соответствует параметру "По умолчанию".

С помощью такого файла можно также и удалять записи из системного реестра. Для этого нужно перед именем раздела поставить знак "-": "[-HKEY_LOCAL_MACHINE\……..]".

Если хотите более подробно поисследовать формат файлов .reg, экспортируйте какой-нибудь большой раздел в такой файл и посмотрите, что у вас получилось.

Смело вперед!

Вот и закончилась эта большая и сложная статья. Но несмотря на свои размеры, она охватила лишь очень малую часть секретов системного реестра Windows. Конечно, хотелось бы узнать поподробнее про другие разделы, выяснить, где прячутся интересные настройки… Можно поискать книжки, полазить по Internet. Но это все дорого и сложно. А ведь между тем у вас есть все инструменты для того, чтобы системный реестр открывал перед вами все свои новые тайны. Этот инструмент - ваши глаза и руки, ваш разум и ваша память. Наблюдайте, исследуйте, делайте выводы, экспериментируйте (естественно, приняв все меры предосторожности!),- и тогда вы не на чьих-то словах, а на собственном опыте узнаете и откроете многие новые секреты этого недокументированного сердца Windows - системного реестра.
 
 

Рассылка

 
 

Ваш Email:


Content.Mail.Ru

Реклама

 

 

Друзья

 

HARDW.net

 

Обмен ссылками

Статистика

 

 

Rambler's Top100 Яндекс цитирования

 
Автор: Антон Орлов

Источник: www.submarine.ru


Copyright © 2003-2009 HardTek.ru.
Идея, Дизайн, Поддержка - Романченко Николай.
При перепечатке любого материала с сайта ссылка на http://www.HardTek.ru обязательна.
Создатель данного проекта не несет ответственности за последствия, которые могут возникнуть у Вас в результате
использования изложенного материала.