ТаблицейБлоками.Оптимизация и спасение IBM PC: Системный реестр Windows |
Последняя модификация: 10.08.2014 г
Страница загружена с адреса: http://comp.site3k.ru/ibmpc/chaptr24.html
Системный реестр является универсальной базой данных обеспечивающей взаимодействие всех установленных на компьютере программ и состоящей из двух файлов User.dat и System.dat находящихся в папке Windows.
Первый из файлов реестра, как видно уже из названия (данные пользователя), содержит настройки зарегистрированных на компьютере пользователей. При чем, если компьютер настроен на многопользовательский режим, каждому пользователю назначается собственный User.dat, хранящейся в соответствующей папке C:\Windows\Profiles\ИМЯ. При выборе пользователя, этот User.dat копируется в папку Windows, заменяя, находившийся там ранее и, тем самым, определяя конфигурацию текущего сеанса.
Второй файл (системные настройки), содержит универсальные данные, присущие всей системе и независящие от выбора пользователя.
Для ускорения обработки, файлы реестра записаны в двоичном коде, вследствие чего, просмотр и коррекция реестра возможна только с помощью специальных программ. Например, с помощью редактора реестра RegEdit, входящего в состав операционной системы.
Если коррекция реестра специальным редактором неудобна, определенный раздел (или весь реестр), через меню редактора Файл\Экспорт можно экспортировать в Reg-файл для обработки в обычном текстовом редакторе, а затем импортировать обратно (например, двойным щелчком по файлу). Такое редактирование позволяет изменить имеющиеся данные, но не удалить их, поскольку Reg-файл только лишь добавляется к реестру, изменяя значения при совпадении параметров. Для того чтобы на реестре отразилось и удаление, произведенное в Reg-файле, после экспорта, экспортированный фрагмент необходимо удалить из реестра; тогда, после возвращения экспортированного фрагмента, в нем останется лишь то, что осталось в Reg-файле.
Во многих случаях реестр не требует ручной коррекции, поскольку корректируется любым изменением системных настроек, но иногда, изменение настроек удобней производить непосредственно в реестре, к тому же, некоторые изменения, иным способом могут оказаться неосуществимы1.
Ручное редактирование реестра удобно для исправления ошибочных ссылок на удаленные или перемещенные файлы2 (хотя, во многом, эту обязанность берет на себя программа WinDoctor), а так же, для изменения свойств типа файлов, в частности, исключения конкретного расширения из общего типа, с целью назначения ему самостоятельных свойств. Кроме того, коррекция реестра полезна для обмана условно-бесплатных программ, через месяц после установки, начинающих кричать о необходимости регистрации. Простое удаление этих программ, с последующей переустановкой, ничего не дает, поскольку в реестре остаются ссылки, по которым программа определяет, когда была установлена впервые. Удаление этих ссылок, позволяет заставить программу, после переустановки, отсчитывать срок регистрации заново и, до поры до времени, не надоедать (это вполне законно, хотя и не достаточно порядочно).
Да мало ли еще, зачем может потребоваться коррекция реестра? Удаление программ не удаляет все имеющиеся на них ссылки. Обычно такие ссылки безвредны и не вызывают ошибок (а следовательно и претензий со стороны программы WinDoctor). Но в связи с их накоплением, реестр разрастается как снежный ком, усложняя поиск ссылок и, таким образом, замедляя работу компьютера.
При просмотре в программе RegEdit, реестр представляется иерархической структурой, сходной со структурой каталогов и состоящей из множества вложенных друг в друга подчиненных разделов (HKEY). Только вместо файлов, в разделах содержатся параметры (которые и обрабатываются аналогично файлам двойной щелчок и т. д.), информация которых определяет их значение3.
При этом параметр, называемый по умолчанию, означает, отсутствие какого-то ни было параметра, а фраза значение не присвоено означает отсутствие значения (свойственно отсутствующим параметрам).
HKEY_CLASSES_ROOT (раздел стандартных установок) содержит ассоциации, связывающие файлы с конкретными программами и значками (файловые ассоциации), необходимые для их запуска, выбора значков и вывода контекстного меню.
HKEY_CURRENT_USER (раздел выбранного пользователя) содержит настройки текущего пользователя.
HKEY_LOCAL_MACHINE (раздел данного компьютера) содержит профили оборудования и данные о програмном обеспечении.
HKEY_USERS (раздел пользователей) содержит информацию обо всех зарегистрированных на компьютере пользователях, передаваемую, по необходимости, в раздел CURRENT_USER.
HKEY_CURRENT_CONFIG (раздел выбранной конфигурации) содержит текущую конфигурацию оборудования, определяя, какие устройства из всех имеющихся и зарегистрированных в подразделе CONFIG, раздела LOCAL_MACHINE, в нее включены, а какие, нет.
HKEY_DYN_DATA (раздел динамических данных) содержит динамически обновляемые данные о производительности оборудования, используемые программами типа Системный монитор.
Некоторые из подразделов реестра могут вызывать наибольший интерес:
NKEY_CURRENT_USER\Control Panel содержит пользовательские настройки свойств экрана (например, параметр Window, определяет цвет фона окон).
HKEY_CURRENT_USER\Software содержит настройки приложений, конкретные разделы которых, начинаются с названий фирм-производителей.
HKEY_LOCAL_MACHINE\Software\Microsoft\CurrentVersion\UnInstall содержит ссылки на программы деинсталляции. Если после удаления приложения, ссылка на нее не удалилась из программы Установка и удаление программ, значит, остался неудаленным и его деинсталлятор. По указанию в этом разделе, его можно найти и удалить (после чего имеет смысл очистить реестр от всех лишних ссылок).
Дальнейшее перечисление конкретных подразделов утомительно и бессмысленно. Если человек приходит к выводу о необходимости корректировать реестр, то он, как правило, знает, что собирается делать. Однако некоторые изменения полезно внести в любой реестр (сотрудники Microsoft упустили это из виду):
Предлогаемый .Reg-файл вносит в контекстное меню папки очень полезный пункт "Открыть в окне DOS".
REGEDIT4 [HKEY_CLASSES_ROOT\Directory\shell\DOS] @="О&ткрыть в окне DOS" [HKEY_CLASSES_ROOT\Directory\shell\DOS\Command] @="C:\\Command.com /k cd %1"
Следущий .Reg-файл вносит в контекстное меню всех файлов не менее полезный пункт "Открыть с помощью".
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\CLASSES\*\Shell] [HKEY_LOCAL_MACHINE\Software\CLASSES\*\Shell\OpenWith] @="О&ткрыть в ..." [HKEY_LOCAL_MACHINE\Software\CLASSES\*\Shell\OpenWith\Command] @="C:\\WINDOWS\\rundll32.exe shell32.dll,OpenAs_RunDLL %1"
Третий .Reg-файл меняет редактор пакетных файлов с Блокнота на более подходящий Edit (Edit использует одинаковую с ними кодировку, но для англоязычных народов это не имеет значения).
REGEDIT4 [HKEY_CLASSES_ROOT\batfile\shell\edit] @="&Изменить" [HKEY_CLASSES_ROOT\batfile\shell\edit\command] @="C:\\WINDOWS\\COMMAND\\edit.com %1"
Подобные изменения можно произвести не только с помощью Reg-файлов, но и непосредственным добавлением (коррекцией) разделов и ключей в редакторе реестра, а так же (не считая последнего), отредактировав зарегистрированные типы файлов в свойствах папки. Изменения, вносимые данной коррекцией, вступают в силу без перезагрузки.
К сожалению, стандартный RegEdit не имеет стека для запоминания вносимых изменений и для получения возможности их отмены (можно ведь, по ошибке удалить не тот раздел или, вместо "скопировать", выдать команду "вставить"), следует иметь резервную копию реестра. Однако это не вполне удобно: ошибка может произойти после нескольких правильных изменений, а отменить, в случае чего, придется все. Более удобно, перед каждым изменением (по крайней мере, удалением), делать копию редактируемого подраздела, экспортируя его в Reg-файл. Еще удобней, использовать в работе с реестром редактор из нортоновских утилит. При наличии апплетов Registry Tracker и File Compare, он позволяет находить изменения и отменять нежелательные.
Есть у стандартного редактора реестра и свои преимущества: он работает не только в среде Windows, но и в DOS, хотя и ограничивается в таком случае только экспортно-импортными операциями. Эту возможность можно использовать, если вследствие изменений реестра, Windows отказывается загружаться (впрочем, он и сам неплохо зализывает свои раны).
Вызывается ДОС-режим, командой "Regedit" с одним из обязательных параметров. При этом, если каталог с реестром не является текущим, перед их вводом требуется явное указание пути к файлам реестра.
Ключ /L: указывает на файл System.dat
Ключ /R: указывает на файл User.dat
Обязательных параметров всего четыре:
ФАЙЛ указывает файлы которые необходимо добавить в реестр.
/C ФАЙЛ указывает файл из которого необходимо создать реестр (резервная копия реестра в формате Reg, перед преобразованием которой, производится удаление файлов реестра).
/E ФАЙЛ указывает файл для экспорта. Если экспортировать следует не весь реестр, то через пробел после имени файла, указывается желаемый подраздел (весть реестр слишком велик и, его не сможет редактировать даже редактор Edit).
/D РАЗДЕЛ удаляет указанный подраздел.
Например:
Regedit /L:windows\System.dat /R:windows\User.dat /E C:\моидок~1\Reg.reg
Следует обратить внимание на синтаксис команды: в параметрах, имя файла (раздела) отделяется от ключевого символа пробелом, но в указании пути к файлам реестра пробел недопустим вместо него ставится двоеточие.
< Глава 23. Глава 24. Глава 25. >