Реестр Windows 95
Данная статья представляет собой компиляцию трех статей, которые
опубликованы в журнале PC Magazine в 1995-1996 гг. (24 октября, 7 ноября и 9
января соответственно). В переводе используется терминология, принятая фирмой
Microsoft для российской версии Windows 95, которая вышла в свет 10 ноября
1995 г. Компиляция выполнена Михаилом Коллегановым.
Единая база данных заменяет многочисленные конфигурационные файлы Windows
3.x.
Первоначально среда Windows обращалась только к двум системным
конфигурационным файлам - CONFIG.SYS и AUTOEXEC.BAT. В Windows 2.x к этим
файлам добавились WIN.INI и SYSTEM.INI, а затем число конфигурационных файлов
стало почти бесконтрольно расти по мере появления регистрационной базы OLE,
файла PROTOCOL.INI в системе Windows for Workgroups и множества INI-файлов для
прикладных пакетов. Система Windows 95 может считывать эти конфигурационные
файлы, чтобы обеспечивать совместимость сверху вниз, но их многочисленные
обязанности теперь возложены на двоичный объект, называемый реестром
(Registry).
Хотя реестр все еще поделен на несколько файлов, редактор реестра Windows
95 (Registry Editor) обращается к нему как к единому целому. Такая особенность
- долгожданный переход от коллекции разных ASCII-файлов в Windows 3.x, но
реестр устроен намного сложнее, чем его ASCII-собратья. Вместо хранения
информации об установочных параметрах в форме последовательного списка в
Windows 95 используется иерархическая древовидная структура, которая заменяет
простые записи в INI-файле сложными именами типа My
ComputerHKEY_CLASSES_ROOTCLSID{20D04FE0-3AEA-1069-
A2D8-08002B30309D}DefaultIcon.
Недостаточная полнота документации, предоставляемой компанией Microsoft,
еще более усложняет ситуацию. В комплекте Windows 3.1 Resource Kit имелось
более 70 стр., посвященных INI-файлам. Хотя эти страницы содержали несколько
ошибок (там указывались ограничения Windows 3.0, которые были устранены уже в
Windows 3.1), они были поистине бесценны для вдумчивых пользователей Windows.
Напротив, в Windows 95 Resource Kit реестр документирован на 25 меньших по
объему страницах, которые "разбавлены" рисунками и замечаниями общего
характера. Компания Microsoft тем самым постепенно переходит от плохо
документированной системы средней сложности к системе, которая более чем
сложна и практически недокументированна.
Хотя многие параметры реестра можно изменить с помощью диалоговых окон
"Проводника" (Explorer), "Панели управления" (Control) или других программных
средств оболочки, часто приходится редактировать реестр непосредственно. Для
облегчения выполнения этого процесса в настоящей статье мы опишем реестр и его
редактор, а затем последовательно выполним ряд действий по настройке
системы.
Редактор реестра
Редактор Registry Editor - это работающая в двух режимах программа, которая
может вызываться из среды Windows или из командной строки реального режима
DOS. Система Windows 95 автоматически инсталлирует "Редактор реестра" в папку
Windows, но не помещает ее системную аббревиатуру (shortcut, в терминологии
Microsoft "ярлык") в меню "Пуск" (Start) или на "Рабочий стол" (Desktop). Для
ускоренного доступа к этому редактору необходимо сформировать аббревиатуру
самостоятельно или просто набрать regedit.exe в диалоговом окне "Выполнить"
(Run).
Когда вы запускаете редактор из среды Windows, он выводится в окне с
несколькими панелями, напоминающем интерфейс "Проводника": древовидная
структура разделов (keys) реестра (аналог папок для файлов) отображается
слева, а содержимое индивидуальных элементов - справа. При первом запуске
редактора реестра, в его окне отображаются шесть корневых (root) разделов, а
все остальные вложены внутрь этих шести. Каждый раздел содержит разнообразные
подразделы - аналоги подкаталогов - и параметры или поля значений (value
entries) - аналоги файлов. Параметр состоит из трех частей: имя, тип данных -
dword (двойное слово), binary (двоичный) или строка ASCII символов - и сами
данные (их размер может достигать 64 Кбайт). Каждый раздел содержит строковый
параметр, имеющий имя "По умолчанию" (Default), которое обычно (но не всегда)
идентифицирует его назначение.
В правой половине экрана отображаются значение "По умолчанию", строковый
параметр MRUList и несколько двоичных параметров (a, b, c, и т. д.). Из-за
глубокой иерархической структуры реестра параметрам присваиваются чрезвычайно
длинные имена: My ComputerHKEY_CURRENT_USERSoftwareMicrosoft
WindowsCurrentVersionAppletsExplorerStreamMRU
(По умолчанию)
В окне редактора реестра, в нижней части, выводится строка состояния, где
показан полный маршрут доступа к выделенному в настоящий момент разделу или
его параметру .
Поскольку при загрузке отображаются только корневые разделы , чтобы
добраться до поля значения какого-либо важного подраздела, придется много раз
щелкнуть мышью. Можно применять диалоговое окно "Найти" (Find) для перехода к
данному элементу, но выполнение этого действия почти столь же медленно, как и
раскрытие дерева вручную (однако команда "Найти" полезна, когда вы точно не
знаете, где искать нужный подраздел).
Редактор реестра не обладает столь богатыми возможностями как
"Проводник"-Explorer, но его средства редактирования вполне интуитивно
понятны. Для изменения имен разделов или их параметров выберите функцию
"Переименовать" (Rename) либо из меню "Правка" (Edit), либо из меню, которое
вызывается щелчком правой клавишей мыши на разделе реестра. Эти два меню также
позволяют создавать новые разделы и присваивать им значения. Для
редактирования конкретных данных реестра просто дважды щелкните клавишей мыши
на имени параметра. Появится диалоговое окно, в которое выводятся
шестнадцатеричный поток двоичных данных и его ASCII-представление . Эти данные
реальные, и их можно редактировать непосредственно.
Файлы User.dat и System.dat
Редактор Registry Editor представляет реестр в виде единой базы данных, но
в действительности он состоит из двух или более файлов. Обычно этими двумя
файлами являются C:WindowsUser.dat, в котором хранятся данные, специфичные
для конкретного пользователя, и C:WindowsSystem.dat, где содержатся данные,
специфичные для компьютера.
Такое деление дает возможность пользователям подключаться к нескольким
машинам, работающим в сети. Например, пользователь X обычно входит в
сетьrNe)g§=2дк4ґgP= с машины X с данным набором файлов реестра. Поскольку
эти файлы взаимно дополняют друг друга, пользователь X может также
подключаться к сетевой машине Y со своим собственным User.dat и System.dat
машины Y. В результате совокупность параметров, характерная для пользователя
X, задаст такие элементы, как оформление, а набор параметров компьютера Y
укажет на драйверы жесткого диска и другие элементы, специфичные для данного
компьютера.
Та же самая парадигма позволяет конфигурировать один компьютер для
нескольких пользователей. Например, чтобы настроить домашний ПК для нескольких
членов семьи, вызовите утилиту "Пароли" (Passwords) "Панели управления",
щелкните мышью на закладке "Конфигурации" (User Profiles) и включите кнопку с
фиксацией , которая обозначена словами "Каждый пользователь может иметь свою
систему настроек, выбираемую при входе в Windows" ("Users Can Customize Their
Preferences and Desktop Settings").
Если новый пользователь входит в систему и настраивает интерфейс, Windows
95 создает новую папку в каталоге C:WindowsProfiles, который содержит копию
User.dat и папок "Главное меню" (Start Menu) и "Рабочий стол". В новый файл
User.dat будут внесены записи для новых папок "Главное меню" и "Рабочий стол".
Реестр для этого нового пользователя строится из нового блока User.dat и
System.dat.
Резервное копирование реестра и REG-файлов
Исправлять и содержимое разделов, и значения параметров легко, но, прежде
чем это делать, всегда следует принимать ряд минимальных мер предосторожности.
Во-первых, создайте загрузочную дискету, вызвав утилиту "Установка и удаление
программ" (Add/Remove Programs) Панели управления и щелкнув на закладке
"Системный диск" (Startup Disk). Такая операция позволит запустить Windows 95
с гибкого диска, если не удастся сделать это с жесткого диска. Во-вторых,
создайте как двоичную, так и текстовую резервные копии самого реестра.
Двоичную копию можно создать, скопировав User.dat и System.dat из папки
Windows. Для получения текстовой резервной копии воспользуйтесь функцией
экспорта редактора реестра.
Функции экспорта и импорта редактора позволяют легко переносить файлы
реестра, которые представляют собой образ дерева реестра в формате ASCII. Файл
реестра имеет расширение REG и содержит последовательный список значений
параметров: [HKEY_LOCAL_MACHINESOFTWAREClassesFaxcover.DocumentDefaultIcon]
@="C:\Windows\Faxcover.exe, 1"
Это предложение идентифицирует конкретный параметр (в квадратных скобках) и
назначает подстроку данных для его строкового значения, присваиваемого по
умолчанию (@ означает "По умолчанию"). В файле Faxcover.exe хранится несколько
пиктограмм, которые могут быть назначены страницам, предваряющим
факс-сообщение. Приведенная выше подстрока данных указывает, что система
должна использовать вторую пиктограмму из Faxcover.exe (как объясняется ниже,
", 1" обозначает вторую пиктограмму).
Для создания REG-файла из некоторой ветви реестра просто выделите
соответствующий раздел и выберите пункт "Экспорт файла реестра" (Export
Registry File) из меню редактора реестра. Команда "Импорт файла реестра"
(Import Registry File) выполняет обратное действие: после того как будет
выбран конкретный раздел, она вставит содержимое REG-файла в ту ветвь дерева
реестра, которая выбрана. Кроме того, можно импортировать информацию о
реестре, просто дважды щелкнув мышью на имени REG-файла или запустив редактор
реестра из командной строки DOS. Для импорта файла реестра из командной строки
DOS наберите имя исполнимого модуля редактора, а за ним имя файла: Regedit
Filename.reg. Запуск редактора из DOS может помочь устранить ошибки в реестре,
которые отключают Windows, или восстановить расположение пиктограмм на
"Рабочем столе" (как это сделать, будет разъяснено ниже).
Если вы собираетесь экспериментировать с ветвью реестра, экспортируйте ее
до внесения изменений. В случае необратимой ошибки можно будет импортировать
исходные параметры и восстановить работоспособную конфигурацию. На тот случай,
если вы забудете сделать резервную копию, помните, что система Windows 95
после успешной начальной загрузки автоматически копирует реестр в два
резервных файла (User.da0 и System.da0). Кроме того, на компакт-диске Windows
95 имеется программа Cfgback.exe, которая позволяет сохранять до девяти
последовательных версий реестра.
Исследование реестра
Чтобы по-иному взглянуть на реестр, экспортируйте его в текстовый файл на
своем компьютере, внесите изменения в настройку системы и повторите экспорт
реестра. Затем, с помощью утилиты построчного сравнения файлов, найдите все
изменения, которые система внесла в реестр. Мы пользовались программой Windows
3.1 Norton Deskedit, которая имеет мощную функцию сравнения файлов
(аналогичная функция в Windows 95 - Norton Navigator - с такими большими
файлами не справляется). Кроме того, для выявления различий можно применить
функцию "Сравнение версий" (Compare Version) программы Word for Windows.
Корневые разделы
В некоторых случаях два разных подраздела реестра будут указывать на один и
тот же блок данных. Чтобы заметить это, посмотрите запись значение параметра
"По умолчанию" в подразделе HKEY_CLASSES_ROOT.386, затем перейдите к значению
"По умолчанию" подраздела HKEY_LOCAL_MACHINESOFTWAREClasses.386. Каждое из
них содержит подстроку, в которой написано vxdfile. Если изменить эту строку в
одном разделе, она одновременно изменится и в другом. Рассмотрев эти разделы
еще пристальнее, можно установить, что и HKEY_CLASSES_ROOT, и
HKEY_LOCAL_MACHINESOFTWAREClasses содержат не только идентичные данные, но и
идентичные подразделы.
Как только вы заметите такие совпадения, станет проще разобраться в
структуре реестра. Он содержит шесть корневых разделов, формирующих первый
уровень дерева. Все остальные разделы представляют собой подразделы этих
шести:
HKEY_LOCAL_MACHINE (HKLM) содержит все данные из System.dat, описывающие
драйверы, установленное оборудование, коммуникационные порты, конфигурацию
программного обеспечения и другие элементы, определяющие индивидуальные
параметры системы;
HKEY_USERS содержит подразделы для используемого по умолчанию блока
User.dat и подразделы для файла User.dat текущего пользователя (если ПК
настроен только для одного пользователя, он будет содержать только раздел
"По умолчанию"). В Windows Resource Kit утверждается, что HKEY_USERS
содержит подразделы для всех файлов User.dat, которые размещены в системе,
но это не так;
HKEY_CLASSES_ROOT (HKCR), представляющий собой копию
раздеrNe)g§=2дк4ґgP=ла HKLMSOFTWAREClasses, содержит информацию о
технологии OLE, системных аббревиатурах, механизме drag-and-drop и других
функциях интерфейса, реализуемых на уровне ядра системы;
HKEY_CURRENT_USER (HKCU) содержит данные из файла User.dat текущего
пользователя. Следовательно, он всегда будет копией данных одного из
подразделов HKEY_USERS;
HKEY_CURRENT_CONFIG содержит информацию об установленных в данный момент
аппаратурных средствах. Поскольку HKLMCONFIG охватывает все возможные
параметры оборудования системы, раздел HKEY_CURRENT_CONFIG всегда
представляет собой копию подраздела из HKLMCONFIG;
HKEY_DYN_DATA, который хранится в ОЗУ для обеспечения быстрого доступа к
нему, содержит информацию об устройствах, которые были установлены или
загружены - успешно либо безуспешно.
Таким образом, в реестре есть только три раздела, которые не дублируются:
HKEY_DYN_DATA, HKEY_USERS и HKEY_LOCAL_MACHINE. Следовательно, если вы
экспортируете реестр целиком, получающийся в результате REG-файл содержит лишь
два корневых раздела - HKEY_USERS и HKEY_LOCAL_MACHINE (при этом HKEY_DYN_DATA
размещается в ОЗУ).
Структура корневых разделов может показаться избыточной, но такое
дублирование весьма полезно. Разделы HKEY_CURRENT_USER и HKEY_CURRENT_CONFIG
позволяют отделить текущие установочные параметры вашей машины от других, не
всегда используемых характеристик системы. Раздел HKEY_CLASSES_ROOT - по сути
копия всей регистрационной базы данных, которая наиболее важна при изменении
настройки системы. Именно здесь определяется порядок работы с файлами
различных типов Windows 95.
HKCR и типы файлов
Чтобы открыть документ в среде Windows 95, достаточно дважды щелкнуть
клавишей мыши на его пиктограмме. Эта функция реализуется с помощью модуля
"Типы файлов" (File Types) Windows 95, который устанавливает связи между
прикладными программами и расширениями файлов. Выбрав пункт "Вид|Параметры"
(View|Options) меню "Проводника" и перейдя к закладке "Типы файлов", можно
просматривать, редактировать или создавать новые типы файлов. Однако механизм
деления файлов на типы заложен в реестре. Раздел HKCR содержит
подраздел-идентификатор для каждого типа файлов , подраздел для каждого
расширения, связанного с типом файла , и пару специальных подразделов с
именами * и CLSID.
Значением подраздела расширения по умолчанию служит имя соответствующего
подраздела-идентификатора, в котором хранится название типа файла и его
характеристики. Например, для командных файлов в DOS используется расширение
bat. В реестре имеется подраздел с именем .bat, который содержит ссылку на
подраздел batfile. В поле значения "По умолчанию" для командных файлов
записано "Пакетный файл MS-DOS" (именно так описывается тип файла на закладке
"Типы файлов"). Таким образом, при двойном щелчке клавишей мыши на обозначении
командного файла система обратится к подразделу .bat, а далее перейдет к
подразделу batfile, откуда и получит указание запустить этот командный файл в
сеансе DOS.
Однако не все идентификаторы связаны с расширениями. К числу таких типов
системных файлов относятся Audio CD, "Диск" (Drive), "Папка с файлами"
(Directory) и "Папка" (Folder). В подразделе * определяются расширения
оболочки и команды контекстного меню для всех файлов, а в CLSID перечислены
все системные объекты, относящиеся к конкретным идентификаторам.
Подразделы расширений и идентификаторы типов файлов
Большинство подразделов расширений содержат только название идентификатора,
с которым они связаны, но некоторые могут иметь подраздел ShellNew. Этот
подраздел позволяет включать соответствующий пункт в меню "Создать" (New)
Windows 95 и может содержать ссылки на исполнимые модули или макрокоманды.
Раздел-идентификатор определяет конкретный тип файла через обширный массив
подразделов. Подраздел DefaultIcon содержит указание на пиктограмму типа
файлов (каждый документ, относящийся к связанному с данным расширением типу,
обозначается этой пиктограммой). В подразделе Shell перечисляются действия,
которые можно выполнять над файлами этого типа. Все действия перечислены в
контекстном меню документа (доступ к нему осуществляется щелчком правой
клавиши мыши на документе). Название действия по умолчанию - оно выполняется в
ответ на двойной щелчок мышью на документе - выводится полужирным шрифтом .
Наконец, через подраздел shellex осуществляется подключение специальных
обработчиков, которые могут потребоваться для файлов этого типа. Для некоторых
редко встречающихся экземпляров раздел-идентификатор будет содержать и другие
подразделы, но мы сосредоточим свое внимание на этих трех.
Подраздел ShellNew
Для доступа к меню "Создать" выберите "Создать", щелкнув правой клавишей
мыши на "Рабочем столе" (Desktop), по открытой папке или окну "Проводника".
Это меню - оно позволяет создавать новые документы зарегистрированных
прикладных программ - определяется через подразделы ShellNew в HKCR.
ShellNew - это обычно единственный подраздел для расширения (если оно
вообще его имеет). Однако, если с расширением связано несколько записей меню
New, в нем содержится несколько вложенных подразделов ShellNew. Например,
раздел .doc имеет три отдельных подраздела, представляющих различные записи:
Word.Document.6, Word.Document и Notepad.Document.1, у каждой из которых есть
свои собственные ShellNew. Некоторые расширения могут содержать вложенные
подразделы ShellNew, даже если у них есть только одна запись в меню New.
Подраздел ShellNew содержит один или несколько параметров:
поле NullFile, которое содержит пустую строку (" "),
поле Data, которое содержит двоичное значение,
поле FileName, которое содержит имя файла, и
поле Command, которое содержит маршрут доступа к исполнимому модулю и
все необходимые аргументы. Каждое из этих полей при выборе пункта
меню "Создать", который он определяет, используется для своей цели:
NullFile создает новый пустой файл;
FileName создает копию указанного файла (если нет поля NullFile). Если
это значение не содержит маршрута доступа, то система ищет файл в каталоге
C:WindowsShellNew;
Data копирует указанные двоичные значения в новый файл (если нет ни поля
NullFile, ни поля FileName);
Command вызывает исполнимый модуль при создании нового файла.
Windows создает новый файл в том месте, где был осуществлен щелчок
правой клавишей мыши - на "Рабочем столе", в папке или в "Проводнике". Имя
нового файла всегда наследует формат: New Publicname .ext
где Publicname - строка, хранимаяrNe)g§=2дк4ґgP= в поле "По
умолчанию" подраздела-идентификатора, а ext - соответствующий подраздел
расширения. Если вы создаете текстовый файл, например Windows называет его
Текстовый документ.txt (New Text Document.txt). Из значения по умолчанию в
подразделе-идентификаторе txtfile считывается Текстовый документ, а txt -
соответствующее расширение.
Для демонстрации возможностей HKCR мы создали пункт меню "Создать" для
шаблона счета. Этот пример может показаться нерациональным, но он поможет
понять некоторые концепции, лежащие в основе реестра.
Сначала создадим подраздел .inv, указывающий на подраздел-идентификатор
InvoiceFile. Этот подраздел в поле "По умолчанию" должен содержать значение
"Счет". Для появления пункта "Счет" в меню "Создать" необходимо, кроме того,
сопоставить этому расширению исполнимый модуль. Для этого просто вставьте
маршрут доступа к WinWord в элемент HKCRInvoiceFileShellOpen Command.
Наконец, скопируйте свой шаблон счета в каталог C:WindowsShellNew до
создания в подразделе .inv элемента ShellNew, содержащего поля FileName и
Command. Когда этот пункт будет выбран из меню "Создать", выполнение команды
приведет к открытию нового файла-счета с именем Счет.inv в окне WinWord, с
последующим вызовом макрокоманды на языке WordBasic. Эта макрокоманда
предложит переименовать файл, сохранит его с расширением doc в указанном
каталоге и удалит inv-файл.
Подраздел DefaultIcon
Подраздел DefaultIcon связывает пиктограмму с конкретным файлом или
прикладной программой. Большинство значений в полях DefaultIcon строго
придерживаются формата: C:WindowsFilename, N
где Filename - название файла, в котором хранится одна или несколько
пиктограмм (обычно exe-, dll- или ico-файл), а N - целое число, которое
показывает, которую пиктограмму из серии следует использовать (первая из них
имеет номер 0, вторая - 1 и т. д.). В некоторых случаях N - отрицательное
число. Такие значения представляют собой идентификаторы ресурсов, а не номера
пиктограмм (все ресурсы в исполнимых модулях имеют двоичный идентификатор).
Для вывода пиктограмм из конкретного файла на экран вызовите окно свойств
аббревиатуры, щелкните на кнопке "Сменить значок" (Change Icon) и выберите
файл, который хотите просмотреть.
Некоторые значения подразделов DefaultIcon содержат строку %1. В таких
случаях файл, который обращается к этой пиктограмме, сам генерирует ее (в
рамках HKCR %1 - переменная, которая связывается с файлом, ассоциированным с
данным подразделом). Для работы этого механизма либо система, либо файл должен
предоставить обработчик пиктограмм (IconHandler). Система предоставляет
обработчики пиктограмм для файлов exe-, ico-, cur-, ani- и bmp-. Утилита
Hyperterminal (ее подраздел в реестре обозначается htfile) - это пример файла,
который имеет свой собственный обработчик пиктограмм. Система использует
строку %1 для exe-, ico-, cur- и ani-файлов, но не для bmp-файлов. Если вы
желаете, чтобы пиктограмма bmp-файла представляла собой миниатюрную копию
настоящего изображения (thumbnail), можно поменять значение элемента
HKCRPaintPicture DefaultIcon на %1. К сожалению, если системе приходится
считывать довольно большое растровое изображение, вы можете столкнуться с
большой задержкой при каждом обновлении экрана.
Когда подраздел-идентификатор не содержит элемента DefaultIcon, система
Windows 95 должна получить пиктограмму откуда-то еще. Если с идентификатором
связан исполнимый модуль, его пиктограмма уменьшается в размере и помещается
внутрь пиктограммы документа (изображения чистого листа бумаги). Если
связанного исполнимого модуля нет, система использует стандартную пиктограмму
с логотипом Windows 95.
Подраздел Shell
Подраздел Shell идентификатора содержит названия всех действий, которые
связаны с конкретным типом файлов. В подразделе-идентификаторе batfile,
который управляет командными файлами, предусмотрены подразделы для
редактирования, открытия и печати. Каждое действие определяется параметрами,
перечисленными на вкладке Типы файлов для типа "Пакетный файл" MS-DOS и в
контекстном меню, которое вызывается при щелчке правой клавишей мыши на
изображении командного файла .
Каждое действие описывается командной строкой. Значение "По умолчанию" для
этого подраздела всегда содержит командную строку, в которой имеется
псевдопеременная %1. Она указывает на файл, над которым выполняется действие.
Например, командная строка для редактирования командного файла MS-DOS имеет
следующий вид: C:WindowsNotepad.exe %1
Когда вы щелкаете правой кнопкой мыши на изображении командного файла и
выбираете "Изменить" (Edit), система открывает этот файл в окне "Блокнота"
(Notepad). Если используются длинные имена файлов, то в большинстве случаев
аргумент %1 следует заключать в кавычки. Без кавычек прикладная программа
может неверно интерпретировать пробелы, содержащиеся в имени файла.
Когда происходит вызов контекстного меню файла, действие обычно называется
точно так же, как и соответствующий ему подраздел. Однако так происходит
только тогда, когда параметр "По умолчанию" содержит пустую строку. Если эта
строка не пуста, то она становится именем действия. Это дает возможность в
интернациональных версиях Windows использовать английские названия подразделов
реестра (например, open) и названия на ином языке в контекстных меню.
По соображениям совместимости с определенными прикладными программами
Windows 3.x можно обнаружить подразделы Shell в подразделах расширений, а не в
подразделах-идентификаторах, но это случается исключительно редко.
Идентификаторы CLSID
Точно так же как все мы нуждаемся в личных идентификаторах системы
социального обеспечения (речь идет о США. - Прим. пер.), чтобы отличать нас от
других граждан страны, программному объекту требуется GUID - глобально
уникальный идентификатор (globally unique identifier). В системе Windows 95 к
GUID относятся CLSID (classes identifiers, идентификаторы классов), которые
впервые были использованы в спецификации OLE. CLSID - это 16-байт значение,
содержащее 32-шестнадцатеричные цифры в формате 8-4-4-4-12 (8 цифр, дефис, 4
цифры, дефис и т. д.).
Производители программного обеспечения могут получить CLSID для объекта,
запросив его в корпорации Microsoft или запустив программы, которые входят в
состав Microsoft SDK (Uuuidgen.exe) и DDK (Guidgen.exe). Когда вы запускаете
такую программу, первые восемь шестнадцатеричных цифр генерируются случайным
образом, следующие четыре формируются исходя из текущей даты и времени, а
последние 20 цифр вычисляются на основе аппrNe)g§=2дк4ґgP=аратных
характеристик компьютера. Вероятность формирования одного и того же числа
дважды ничтожно мала.
CLSID представляют собой просто имена, которые используются операционной
системой для идентификации указанных объектов. Например, подраздел "Портфель"
(Briefcase) должен использовать независимый объект при создании нового
экземпляра "Портфеля". Следовательно, он содержит свой подраздел CLSID,
который выглядит так: {85BBD920-42A0-1069-A2E4-08002B30309D}
Таким образом, в разделе Briefcase имеется подраздел, значение "По
умолчанию" которого содержит приведенную выше строку.
Все CLSID перечислены в разделе HKCRCLSID. Поле "По умолчанию" каждого
подраздела CLSID содержит название объекта, как, например, CD Audio Track или
Microsoft Excel Worksheet. Эти разделы также содержат другие подразделы,
которые определяют объект. Два самых типичных объекта - InProcServer и
InProcServer32, которые содержат динамически компонуемые библиотеки (DLL),
вызываемые при обращении к обработчикам объектов в процессе реализации
OLE-связи.
Подразделы SHELLEX и *
Для разработчиков наиболее привлекательная особенность среды Windows 95
состоит в ее расширяемости - независимые фирмы могут дополнять оболочку
специальными обработчиками. Для настройки обработчика получите значение CLSID,
присвойте его DLL через подраздел InProcServer и сошлитесь на этот CLSID
где-либо в HKCR. Ссылки на такие обработчики обычно содержатся в подразделе
shellex раздела-идентификатора.
Вот примеры некоторых типичных обработчиков:
ContextMenuHandler обеспечивает альтернативный метод добавления пунктов
в контекстное меню объекта. Например, пакет WinZip добавляет пункт Zip.
IconHandler, как обсуждалось выше, позволяет каждому типу файлов
генерировать свою собственную пиктограмму. Например, lnk- и pif-файлы
указывают на CLSID поименованной системной аббревиатуры. Этот обработчик
переопределяет аббревиатуру на основании пиктограммы файла.
DragAndDropHandler позволяет добавлять пункты в контекстное меню, когда
объект переносится в папку при нажатой правой клавише мыши. Пример - пункт
Navigator, который устанавливается программой Norton Navigator.
PropertySheetHandler позволяет добавлять страницы к "Перечню свойств"
(Property Sheets) файла. Программа Norton Navigator добавляет ко всем файлам
одну страницу, на которой выводится дополнительная информация о дате.
DropHandler позволяет файлам данных реагировать при использовании
техники drag-and-drop - например, когда WinZip добавляет файл в архив при
его "опускании" на изображение архива. Это осуществляется с помощью
обработчика DropHandler для подраздела WinZip, который представляет собой
идентификатор Zip-архива. Специальный раздел - HKCR* - содержит
обработчики, применимые ко всем объектам. Он содержит подраздел shellex,
который наследует тот же формат, что и разделы-идентификаторы.
Флаги редактирования
Закладка "Типы файлов" (File Types) в меню "Вид|Параметры" (Viww|Options)
"Проводника" (Explorer) позволяет редактировать большинство файлов, но
определенные параметры нельзя изменить. Например, действие по умолчанию для
командного файла запускает его, а не открывает в окне "Блокнота" или WordPad.
Следовательно, когда вы дважды щелкаете кнопкой мыши по изображению файла
AUTOEXEC.BAT, открывается окно DOS и этот файл выполняется. Однако, если вы
хотите изменить это выполняемое по умолчанию действие и редактировать
командный файл при двойном щелчке, закладка "Типы файлов" не позволит сделать
это. Кнопка "По умолчанию" (Set Default) для типа "Пакетный файл MS-DOS"
всегда отображается серым цветом (как отключенная).
Это происходит потому, что подраздел HKCRbatfile содержит параметр
EditFlag. Такие параметры используются повсюду в реестре, чтобы помешать
неопытным пользователям изменить определенные настройки системы. Двоичные
данные в поле EditFlag подраздела batfile выглядят как d0 04 00 00. Если
изменить это значение на 00 00 00 00, появится возможность изменять любые
параметры командного файла. Однако не заносите нули в параметр EditFlag без
разбора: если сделать это в системном подразделе-идентификаторе, например
Drive или AudioCD, он совсем исчезнет из списка типов файлов. Для
идентификаторов, которые связаны с расширениями, допускается приравнивать все
EditFlag к 00 00 00 00. Для системных идентификаторов замените данные в
EditFlag на 02 00 00 00.
Если вы желаете иметь возможность доступа к некоторым кнопкам, оставляя
другие отключенными, необходимо знать назначение каждого бита в EditFlag.
Последние два байта данных всегда нулевые, большинство битов первых двух
байтов имеют определенные функции:
Байт 1, бит 1: Удаляет тип файлов из основного списка на закладке "Типы
файлов" (вызывается через пункт меню "Вид|Параметры" "Проводника"), если
этот тип не имеет связанного с ним расширения.
Байт 1, бит 2: Размещает тип файлов на вкладке "Типы файлов", если этот
тип не имеет ассоциированного расширения.
Байт 1, бит 3: Идентифицирует тип без связанного с ним расширения.
Байт 1, бит 4: Отключает кнопку "Изменить" (Edit) на закладке "Типы
файлов" (File Types).
Байт 1, бит 5: Отключает кнопку "Удалить" (Remove) на вкладке "Типы
файлов".
Байт 1, бит 6: Отключает кнопку "Создать" (New) в диалоговом окне
"Изменение свойств типа" (Edit File Type), которое вызывается при нажатии
кнопки "Изменить" на закладке "Типы файлов".
Байт 1, бит 7: Отключает кнопку "Изменить" в диалоговом окне "Изменение
свойств типа".
Байт 1, бит 8: Отключает кнопку "Удалить" в диалоговом окне "Изменение
свойств типа".
Байт 2, бит 1: Запрещает редактировать описание типа файла в диалоговом
окне.
Байт 2, бит 2: Отключает кнопку "Сменить значок" (Change Icon) в
диалоговом окне "Изменение свойств типа".
Байт 2, бит 3: Отключает кнопку "По умолчанию" (Set Default) в
диалоговом окне "Изменение свойств типа".
Байт 2, бит 4: Запрещает редактировать описание действия (Edit Action),
которое вызывается нажатием кнопки "Изменить" в диалоговом окне "Изменение
свойств типа".
Байт 2, бит 5: Запрещает редактировать строку команды в диалоговом окне
"Изменение действия для типа" (Edit Action).
Байт 2, бит 6: Запрещает настраивать поля DDE (динамического обмена
данными) в диалоговом окне "Изменение действия для типа". Например,
для подраздела Drive шестнадцатеричное значение EditFlag равно d2 01 00 00 (в
двоичном формате 1101 0010 0000 0001). В байте 1 установлены биты 2, 5, 7 и 8,
а в байте 2 - бит 1. Параметр EditFlag для подраздела
batfirNe)g§=2дк4ґgP=le равен d0 04 00 00 в шестнадцатеричном
представлении или 1101 0100 0000 0100 в двоичном. В этом случае в байте 1
установлены биты 5, 7 и 8 и бит 2 в байте 2.
Биты 4, 5 и 6 в байте 2 влияют только на защищенные от правки действия. В
разделах, описывающих действия (типа HKCRbatfileshellopen), параметры
EditFlag определяют защиту. Если бит 1 байта 1 EditFlag такого параметра равен
0 (или у него нет EditFlag), то описание этого действия защищено от
редактирования. Если бит 1 байта 1 равен 1, защита снята.
Будьте очень осторожны, изменяя системные параметры EditFlag. Эти
внутренние по отношению к операционной системе значения официально не
документированы и могут измениться в последующих версиях.
Другие характеристики HKCR
Три системных подраздела-идентификатора - Folder, Drive и Directory - имеют
несколько дополнительных отличий. Folder и Drive определяют типы файлов
"Папка" и "Диск" соответственно, тогда как Directory определяет тип "Папка с
файлами" (File Folder, в поле его значения "По умолчанию" можно прочесть
"Папка с файлами"). "Диск" и "Папка с файлами" должны рассматриваться как
потомки типа "Папка". Всякое действие, назначенное типу "Папка", применимо к
системным папкам (таким, как "Мой компьютер") так же, как к "Папкам с файлами"
(например, C:Windows) и "Дискам" (например, A:).
HKCR также содержит подраздел Unknown, который обрабатывает
незарегистрированные расширения. Обычно при щелчке мышью по файлу с
незарегистрированным расширением выводится диалоговое окно "Открыть с помощью"
(Open With), и при этом предоставляется возможность выбрать из списка
прикладных программ. Можно также создать новые типы файлов на этом экране,
установив флажок "Всегда использовать выбранную программу" (Always Use This
Programm to Open This File). Если вы хотите открывать все файлы неизвестного
типа в ASCII-формате и обходиться без диалога "Открыть с помощью", добавьте
подраздел HKCRUnknownShell NotepadCommand со значением "По умолчанию"
C:WindowsNotepad.exe %1.
Корневой раздел HKCR хранит массу информации. Он может быть мощным
средством настройки типов файлов в Windows 95, но будьте очень осторожны,
редактируя его компоненты. Убедитесь, что подготовили двоичные и ASCII-копии
реестра до внесения каких-либо изменений.
Аппаратные пиктограммы на рабочем столе
Обычно на рабочем столе Windows 95 расположены пять связанных с аппаратурой
пиктограмм, которые нельзя переместить или удалить обычным образом: "Мой
компьютер" (My Computer), "Сетевое окружение" (Network Neighborhood),
"Входящие" (Inbox), The Microsoft Network и "Корзина" (Recycle Bin) (при
установке пакета Windows 95 Plus! добавляется аппаратная пиктограмма
Internet). В зависимости от типа выбранной вами установки некоторые из этих
пиктограмм могут отсутствовать. Например, если вы не устанавливаете Microsoft
Exchange, пиктограмма "Входящие" не требуется. "Портфель" также представляет
собой пиктограмму, относящуюся к аппаратуре, но она не зафиксирована на
рабочем столе.
В контекстном меню каждой из этих пиктограмм, за исключением The Microsoft
Network (против присутствия которой на рабочем столе Windows 95 до недавнего
времени возражало Министерство юстиции США), нет пункта "Удалить" (Delete).
Однако с помощью реестра можно убрать или переместить все эти пиктограммы в
другое место.
Изменение пиктограмм, относящихся к аппаратуре
Хотя существует возможность удалить пиктограмму "Сетевое окружение" с
помощью редактора системных правил (System Policy Editor), намного проще
сделать это через реестр. Найдите раздел HKCUSOFTWARE
MicrosoftWindowsCurrentVersionPoliciesExplorer и создайте поле параметра
типа DWORD с именем NoNetHood. Если вы присвоите ему значение 1 и
перезапустите систему,пиктограмма "Сетевое окружение" не сможет появиться. Для
восстановления ее положения измените это значение на 0.
Для изменения других пиктограмм, связанных с аппаратурой, найдите раздел
HKLMSOFTWAREMicrosoft WindowsCurrentVersionexplorerDesktopNameSpace.
Внутри этого раздела каждая пиктограмма имеет свой собственный параметр CLSID,
описанный выше, - идентифицирующее индивидуальные объекты 16-байт значение -
он указывает на соответствующий подраздел в HKCRCLSID. Для удаления
пиктограммы исправьте значение парного параметра в HKCRCLSID. CLSID для
каждой из пиктограмм, относящихся к аппаратуре, таковы:
Мой компьютер: {20D04FE0-3AEA-1069-A2D8-08002B30309D}
Сетевое окружение: {208D2C60-3AEA-1069-A2D7-08002B30309D}
Корзина: {645FF040-5081-101B-9F08-00AA002F954E}
Входящие: {00020D75-0000-0000-C000-000000000046}
The Microsoft Network: {00028B00-0000-0000-C000-000000000046}
Проводник: {FBF23B42-E3F0-101B-8488-00AA003E56F8} Например, если
вы хотите изменить пиктограмму "Корзина", сначала следует найти подраздел в
HKLMSOFTWAREMicrosoftWindowsCurrentVersionexplorer DesktopNameSpace, у
которого в поле значения по умолчанию записано "Корзина":
{645FF040-5081-101B-9F08- 00AA002F954E}. Если удалить этот подраздел, то
система уберет "Корзину" с "Рабочего стола". Однако можно просто переименовать
"Корзину", отыскав соответствующий CLSID (HKCRCLSID{645FF040-5081-101B-9F08-
00AA002F954E}) и изменив имя в поле его значения по умолчанию.
Кроме того, можно создавать новые версии аппаратных пиктограмм, которые
имеют свойства "Переместить", "Копировать" и "Удалить". Например, пиктограмме
The Microsoft Network соответствует CLSID
{00028B00-0000-0000-C000-000000000046}. Для создания новой пиктограммы с
именем MSNetwork удалите раздел
HKLMSOFTWAREMicrosoftWindowsCurrentVersionexplorer
DesktopNameSpace{00028B00-0000-0000-C000- 000000000046} и создайте новую
папку с именем: MSNetwork.{00028B00-0000-0000-C000-000000000046}
Папка с таким расширением приобретает свойства оригинальной пиктограммы
The Microsoft Network, но при этом ее можно удалять или перемещать.
Как отмечалось в начале статьи, пиктограмму "Мой компьютер" можно изменить,
отыскав подраздел HKCRCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}
DefaultIcon и указав файл с новым изображением в поле "По умолчанию". Подобный
метод можно применять для других пиктограмм, связанных с аппаратурой.
Единственная переменная, необходимая для этого, - параметр CLSID. Просто
перейдите к соответствующему разделу в HKCRCLSID, а затем к подразделу
DefaultIcon. За исключением "Корзины", значение "По умолчанию" этих разделов
представляет собой полный маршрут доступа к файлу, который содержит
соответствующую пиктограмму.
Для "Корзины" в разделе rNe)g§=2дк4ґgP=DefaultIcon есть три параметра:
"По умолчанию", empty (пустая) и full (полная). Параметр empty определяет
пиктограмму, обозначающую пустую "Корзину", тогда как full указывает на
пиктограмму "Корзины", содержащей, по крайней мере, один файл. Текущая
пиктограмма "Корзины" хранится в поле "По умолчанию".
Системные пиктограммы
Windows 95 извлекает большинство своих основных системных пиктограмм из
файла C:WindowsShell32.dll. Первые 42 пиктограммы в этом файле показаны ,
представляющем собой копию экрана программы Microangelo фирмы Impact Software.
Изображения с номерами 006 и 007 употребляются для обозначения накопителей на
гибких дисках на "Рабочем столе" или в папке "Мой Компьютер". Пиктограмма с
меткой 030 обозначает системные аббревиатуры, а 029 показывает предоставляемые
в общее пользование накопители, каталоги и принтеры. Роли других пиктограмм из
файла Shell32.dll таковы:
001: Пиктограмма документа по умолчанию
008: Кассетные накопители
009: Локальный жесткий диск
010: Сетевой жесткий диск
011: Отключенный сетевой накопитель
012: Накопитель CD-ROM
014: Вся сеть в "Сетевом окружении"
016: Компьютер в "Сетевом окружении"
017: Принтер в папке "Принтеры"
019: Рабочая группа в "Сетевом окружении" Как уже отмечалось
выше, при выборе пиктограммы из файла в Windows 95 отсчет следует вести от
нуля, а не от единицы (первая пиктограмма имеет номер 0, вторая 1 и т. д.).
Например, чтобы указать на пиктограмму 007 , следует использовать следующий
формат: C:WindowsSystemShell32.dll, 6,
где 6 указывает на седьмую пиктограмму.
Для изменения системной пиктограммы необходимо создать новый раздел
HKLMSOFTWAREMicrosoftWindows CurrentVersionexplorerShellIcons (Если
установлен пакет Windows 95 Plus!, этот раздел уже есть.) Значения параметров
в этом разделе - он переопределяет функции пиктограмм из файла Shell32.dll -
записываются в следующем формате: N = Filename, n
N - число от 0 до 41, указывающее на конкретную пиктограмму в
Shell32.dll. Filename - маршрут доступа к файлу с пиктограммой, а n обозначает
пиктограмму в этом файле.
Например, пиктограмма 030 обычно обозначает аббревиатуру. Однако, если вы
хотите помечать аббревиатуры пиктограммой 031, необходимо создать следующую
запись в разделе ShellIcons (помните, отсчет ведется от 0, а не от 1): 29 = C:WindowsSystemShell32.dll, 30.
Такие изменения можно осуществлять без инициализации системы. Чтобы
система Windows могла загружаться быстрее, текущие значения ее системных
пиктограмм хранятся в скрытом файле C:WindowsShellIconCache. При начальном
запуске система считывает необходимые изображения из этого файла или создает
его заново, если он отсутствует. Однако, если изменяются размеры пиктограмм,
Windows перестраивает ShellIconCache "на ходу". Для этого щелкните правой
кнопкой мыши на "Рабочем столе", выберите "Свойства" и перейдите к вкладке
"Оформление" (Appearance). Затем в поле "Элемент" (Item) выберите "Значок"
(Icon). Если вы измените размер пиктограмм и щелкните по кнопке "Применить"
(Apply), Windows перестроит папку ShellIconCache и зафиксирует изменения в
реестре (тем же способом легко можно восстановить размер пиктограмм).
Положение пиктограмм на рабочем столе
К сожалению, Windows 95 не предусматривает простого механизма сохранения и
восстановления положения пиктограмм на "Рабочем столе". Если вы нечаянно
выберете пункт "Упорядочить значки" (Arrange Icons), Windows разместит уже
расставленные вами пиктограммы строго по алфавиту. Для сохранения своих
настроек вам придется прибегнуть к сложному методу правки реестра, который
зависит от компьютера и даже может изменяться со временем.
Положения пиктограмм обычно хранятся в одном из 29 подразделов раздела
HKCUSOFTWAREMicrosoftWindows CurrentVersionExplorerStreams. На нашем
компьютере они оказались в подразделе HKCUSOFTWAREMicrosoft
WindowsCurrentVersionExplorerStreams24.
Для поиска подраздела Streams, в котором зафиксировано описание "Рабочего
стола", выделите Streams в редакторе реестра, экспортируйте его в файл Loc.reg
и просмотрите последний с помощью "Блокнота". Подраздел Streams обычно
содержит два двоичных значения: CabView и ViewView (некоторые имеют только
поле ViewView). Положение пиктограмм на "Рабочем столе" хранится в подразделе,
который имеет небольшое поле CabView и громадное поле ViewView. Например, в
нашей системе ViewView в подразделе 24 содержало 48 строк данных при просмотре
в "Блокноте", в то время как длина следующего по величине блока ViewView
составляла только полторы строки.
Теперь посмотрим на тот же самый раздел в редакторе реестра. Поскольку
редактор отображает данные как в шестнадцатеричном, так и в ASCII формате,
можно распознать имена файлов "Рабочего стола" в ASCII-секции окна "Изменение
двоичного параметра" (Edit Binary Value), если выбран правильный
подраздел.
Как только вы будете уверены в том, что выбрали нужный подраздел,
убедитесь, что Loc.reg размещен в корневом каталоге вашего диска и добавьте
следующую команду импорта к своему файлу Autoexec.bat: REM Regedit C:Loc.reg.
Если вы нечаянно реорганизуете свои пиктограммы на "Рабочем столе",
удалите REM из указанной выше строки и перезапустите систему. Оформление
"Рабочего стола" будет восстановлено. Для поддержания постоянной резервной
копии вашего видоизменяющегося "Рабочего стола", восстанавливайте REM и
повторно экспортируйте Loc.reg всякий раз, когда вносите существенные
изменения. Команду импорта следует вставить в файл Autoexec.bat, поскольку
Windows сохраняет текущее состояние "Рабочего стола" при выходе и считывает
его конфигурацию при начальном запуске.
Однако, поскольку Streams содержит только свежие данные из "Проводника"
(подобно описываемым ниже MRU-спискам), подраздел, относящийся к положению
пиктограмм на "Рабочем столе", может быть потерян, если эти данные
используются нечасто. Если такое случится, следует перемешать пиктограммы на
"Рабочем столе", чтобы был создан новый подраздел. Как только вы найдете этот
новый подраздел, откройте Loc.reg и измените номер подраздела в начале файла.
Наконец, удалите REM из строки команды импорта в файле autoexec.bat и
перезапустите систему.
Запуск программ при запуске системы
Для автоматического запуска прикладной программы при начальном запуске
Windows 3.0 приходилось вставлять команды Run или Load в файл WIN.INI. В
Windows 3.1 этот процесс был упрощен за счет появления "Группы запуска"
(StartUp) ДиспетчrNe)g§=2дк4ґgP=ера Программ. В Windows 95 имеется
подобная папка "Автозапуск" (Startup), в которой размещаются аббревиатуры
(C:WindowsStartMenuProgram Startup (C:WindowsГлавное менюПрограммы
Автозагрузка)) и, которая также совместима сверху вниз с INI-файлами.
В дополнение к этим двум методам в реестре имеется, по крайней мере, шесть
разделов, которые позволяют загружать программы при запуске системы. Система
автоматически выполняет их при инициализации. Четыре из них (Run, RunOnce,
RunServices и RunServicesOnce) размещаются в разделе
HKLMSOFTWAREMicrosoftWindows CurrentVersion и два (Run и RunOnce) - в
разделе HKCUSOFTWAREMicrosoftWindowsCurrentVersion.
Как позволяют предположить их имена, и в разделе RunOnce, и в разделе
RunServicesOnce располагаются программы, выполняемые только один раз. Они
запускаются при следующем перезапуске Windows, а затем система удаляет их
содержимое из реестра. Программы из других разделов выполняются при каждом
запуске системы. Разделы Run и RunOnce в HKLM содержат прикладные программы,
которые должны загружаться и выполняться до запуска любой другой программы. К
числу таких программ относятся программы установки, которые перезапускают
машину и завершают настройку прежде, чем будут вызваны программы из обычного
набора.
Когда программы запускаются с помощью разделов Run и RunOnce в HKCU, они
восстанавливают то состояние, которое сохранили перед последним выходом из
системы. Когда такая программа оповещается о выходе из системы, она сохраняет
информацию об использовавшихся файлах и иных текущих параметрах в этих двух
разделах. Разделы RunServices и RunServicesOnce обеспечивают вызов программ до
вывода на экран приглашения на вход в систему. Подразделы в HKLM выполняются
для всех пользователей на данной машине, тогда как подразделы в HKCU связаны с
конкретным пользователем.
Доступ к файлам установки
При установке дополнительных файлов Windows 95 с помощью диалога "Установка
и удаление программ" (Add/Remove Prigrams) и "Панели управления" система
находит файлы через запись в разделе
HKLMSOFTWAREMicrosoftWindowsCurrentVersionSetup. Поле значения SourcePath
содержит маршрут доступа к папке или накопителю. Если система Windows 95
устанавливалась с компакт-диска, значение SourcePath указывает на накопитель
CD-ROM. Если применялись дискеты, оно указывает на накопитель на гибких
дисках.
Это поле может быть полезно, если вы копируете установочные диски Windows
95 на свой жесткий диск. Например, если вы копируете файлы в папку
C:Winstall, измените строковое значение параметра SourcePath с A: на
C:Winstall. Таким образом, система всегда будет искать правильную папку при
добавлении или удалении программ.
Списки последних команд и документов
Когда из меню "Пуск" (Start) выбирается пункт "Выполнить" (Run), с помощью
появляющегося окна диалога можно быстро запустить исполнимый файл или открыть
папку. Список предшествующих команд хранится в разделе
HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorer RunMRU (MRU это
стандартная аббревиатура словосочетания Most Recently Used - самые последние
из использовавшихся). В этом разделе содержатся до 28 параметров (в том числе
"По умолчанию"). Если список заполнен, 26 записей идентифицируются буквами
алфавита. В них содержатся последние 26 команд (в формате ASCII), которые вы
вводили в диалоге "Выполнить" или в диалоге "Перейти" (Go To) "Проводника". В
поле MRUList перечисляется 26 алфавитных параметров согласно тому, как давно
они использовались. Первая буква соответствует последней команде, вторая -
предпоследней и т. д.
Это эффективный метод хранения. Если повторно запускается команда из
списка, системе приходится изменять только порядок букв в строке MRUList. Если
выполняется новая команда, последняя буква в строке MRUList перемещается на
первую позицию, и соответствующая запись изменяется. Остальные 25 значений не
требуется изменять. Для удаления элемента из списка предшествующих команд
следует удалить соответствующую ему букву из строки MRUList и перезапустить
систему.
Если выбрать "Документ" (Document) из меню "Пуск", можно увидеть последние
15 документов, которые открывались двойным щелчком кнопкой мыши или через
стандартный диалог Windows 95. Этот список вызывается из подраздела
HKCUSOFTWAREMicrosoftWindows CurrentVersionExplorerRecentDocs, который
содержит свой параметр MRUList и 15 полей значений, помеченных буквами
алфавита. В каждом из этих 15 полей хранится имя документа и имя его ярлыка в
C:WindowsRecent (в двоичном формате).
Псевдонимы и маршруты доступа к программам
В разделе HKLMSOFTWAREMicrosoftWindows CurrentVersionApp Paths имеется
несколько подразделов, которые идентифицируют исполнимые файлы в формате
NAME.EXE. Значение "По умолчанию" каждого из параметров содержит маршрут
доступа к соответствующему исполнимому модулю. Второй параметр, называемый
Path, может идентифицировать папки, которые приданы этой программе.
Когда вы набираете NAME в окне диалога "Выполнить", Windows сначала ищет
его в папке Windows, затем в системном каталоге и по заданному до запуска
Windows маршруту DOS. Если система нигде не находит исполнимого модуля с таким
именем, Windows просматривает раздел App Paths. При обнаружении
соответствующего параметра она запускает указанный исполнимый модуль.
Набираемое имя может не быть идентично имени исполнимого модуля, но должно
соответствовать имени параметра. Следовательно, эти параметры можно применять
для присвоения кратких псевдонимов часто используемым программам, командным
файлам или группам прикладных программ. В справочнике Windows Interface
Guidelines утверждается, что если пользователь перемещает исполнимый модуль,
Windows исправляет записи в App Paths, но наш опыт показывает, что это не
так.
Знание правильных параметров INI-файлов часто было критически важно при
работе в среде Windows 3.x. Поскольку Windows 95 более мощная и более сложная
среда, скрытые параметры реестра еще более важны. Несмотря на сложность своей
структуры, реестр - долгожданное усовершенствование INI-файлов Windows 3.x.
Как только вы ознакомитесь с его конструкцией, вы больше не захотите
возвращаться к файлам AUTOEXEC.BAT, CONFIG.SYS и INI-файлам. При работе с
Windows 95 вам этого и не придется делать.. Барри Саймон - внештатный
редактор журнала PC Magazine и соавтор CD-MOM 95: The mother of All Windows 95
Books (Addison-Wesley, 1995)
Барри Саймон© СК Пресс 4/96
|