Сайт о системном реестре, посвященный обзору разделов и ключей реестра Windows. Азы эффективной работы с реестром. Советы и уловки.

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

 Все записи в реестре подразделяются на три типа. Разделы - некое подобие папок Проводника: они могут содержать в себе другие разделы, а также параметры. Параметры - это то, что может содержаться в разделе. Они могут быть трех типов: строковые - обычная текстовая строка, двоичные - число в двоичной системе счисления (в реестре оно хранится в двоичной системе, но вот отображается всегда в шестнадцатеричной - парадокс!) и типа 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 здесь не стоит - уж лучше вводить каждый раз с клавиатуры! Ведь любой, получивший доступ к вашему реестру, может экспортировать этот раздел себе на дискету и внести все ваши логины и пароли в свой реестр.)
 Последний и наиболее обширный раздел - это раздел 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. Если вы пожелаете переместить их в другое место или переименовать, то внесите сюда соответствующие изменения.
 В разделе HKEY_CURRENT_ USER\Software\VB and VBA Program Settings по умолчанию располагаются настройки для всех программ, написанных на языках Visual Basic и VBA. Поэтому загляните и сюда, если вы не нашли имени интересующей вас программы в остальной части раздела Software. Возможно, вас несколько смутило, например, то, что, скажем, настройки броузера Internet Explorer находятся не в одном разделе, а разбросаны по всему ключу HKEY_CURRENT_USER, да и не только по нему. Но это, увы, так - Internet Explorer очень тесно интегрируется в операционную систему и на реестре это тоже отражается.
 Теперь вы имеете представление о его составе и структуре. Даже описанных разделов и ключей достаточно для придания вашей операционной системе особенностей, недостижимых стандартными средствами. Вперёд...

 

Copyright ©"www.RegailReg.narod.ru" 2005
pinsk_sergio@rambler.ru
Design by- BelArt студия

Хостинг от uCoz