Данная
статья представляет собой
компиляцию трех статей,
которые опубликованы в
журнале 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
Computer\HKEY_CLASSES_ROOT\CLSID\{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 Computer\HKEY_CURRENT_USER\Software\Microsoft\
Windows\CurrentVersion\Applets\Explorer\StreamMRU\
(По умолчанию)
В окне
редактора реестра, в
нижней части, выводится
строка состояния, где
показан полный маршрут
доступа к выделенному в
настоящий момент разделу
или его параметру .
Поскольку
при загрузке отображаются
только корневые разделы ,
чтобы добраться до поля
значения какого-либо
важного подраздела,
придется много раз
щелкнуть мышью. Можно
применять диалоговое окно
"Найти" (Find) для
перехода к данному
элементу, но выполнение
этого действия почти
столь же медленно, как и
раскрытие дерева вручную (однако
команда "Найти"
полезна, когда вы точно не
знаете, где искать нужный
подраздел).
Редактор
реестра не обладает столь
богатыми возможностями
как "Проводник"-Explorer,
но его средства
редактирования вполне
интуитивно понятны. Для
изменения имен разделов
или их параметров
выберите функцию "Переименовать"
(Rename) либо из меню "Правка"
(Edit), либо из меню, которое
вызывается щелчком правой
клавишей мыши на разделе
реестра. Эти два меню
также позволяют создавать
новые разделы и
присваивать им значения.
Для редактирования
конкретных данных реестра
просто дважды щелкните
клавишей мыши на имени
параметра. Появится
диалоговое окно, в которое
выводятся
шестнадцатеричный поток
двоичных данных и его ASCII-представление
. Эти данные реальные, и их
можно редактировать
непосредственно.
Файлы User.dat и
System.dat
Редактор
Registry Editor представляет
реестр в виде единой базы
данных, но в
действительности он
состоит из двух или более
файлов. Обычно этими двумя
файлами являются C:\Windows\User.dat,
в котором хранятся данные,
специфичные для
конкретного пользователя,
и C:\Windows\System.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:\Windows\Profiles,
который содержит копию
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_MACHINE\SOFTWARE\Classes\Faxcover.Document\DefaultIcon]
@="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_MACHINE\SOFTWARE\Classes\.386.
Каждое из них содержит
подстроку, в которой
написано vxdfile. Если
изменить эту строку в
одном разделе, она
одновременно изменится и
в другом. Рассмотрев эти
разделы еще пристальнее,
можно установить, что и
HKEY_CLASSES_ROOT, и
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
содержат не только
идентичные данные, но и
идентичные подразделы.
Как только
вы заметите такие
совпадения, станет проще
разобраться в структуре
реестра. Он содержит шесть
корневых разделов,
формирующих первый
уровень дерева. Все
остальные разделы
представляют собой
подразделы этих шести:
- 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=ла
HKLM\SOFTWARE\Classes, содержит
информацию о технологии
OLE, системных
аббревиатурах,
механизме drag-and-drop и
других функциях
интерфейса, реализуемых
на уровне ядра системы;
- HKEY_CURRENT_USER (HKCU)
содержит данные из
файла User.dat текущего
пользователя.
Следовательно, он
всегда будет копией
данных одного из
подразделов HKEY_USERS;
- HKEY_CURRENT_CONFIG
содержит информацию об
установленных в данный
момент аппаратурных
средствах. Поскольку
HKLM\CONFIG охватывает все
возможные параметры
оборудования системы,
раздел HKEY_CURRENT_CONFIG
всегда представляет
собой копию подраздела
из HKLM\CONFIG;
- 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:\Windows\ShellNew;
- 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 в
элемент HKCR\InvoiceFile\Shell\Open
\Command. Наконец, скопируйте
свой шаблон счета в
каталог C:\Windows\ShellNew до
создания в подразделе .inv
элемента ShellNew,
содержащего поля FileName и
Command. Когда этот пункт
будет выбран из меню "Создать",
выполнение команды
приведет к открытию
нового файла-счета с
именем Счет.inv в окне WinWord,
с последующим вызовом
макрокоманды на языке
WordBasic. Эта макрокоманда
предложит переименовать
файл, сохранит его с
расширением doc в указанном
каталоге и удалит inv-файл.
Подраздел
DefaultIcon
Подраздел
DefaultIcon связывает
пиктограмму с конкретным
файлом или прикладной
программой. Большинство
значений в полях DefaultIcon
строго придерживаются
формата:
C:\Windows\Filename, 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),
можно поменять значение
элемента HKCR\Paint\Picture\ DefaultIcon
на %1. К сожалению, если
системе приходится
считывать довольно
большое растровое
изображение, вы можете
столкнуться с большой
задержкой при каждом
обновлении экрана.
Когда
подраздел-идентификатор
не содержит элемента
DefaultIcon, система Windows 95
должна получить
пиктограмму откуда-то еще.
Если с идентификатором
связан исполнимый модуль,
его пиктограмма
уменьшается в размере и
помещается внутрь
пиктограммы документа (изображения
чистого листа бумаги).
Если связанного
исполнимого модуля нет,
система использует
стандартную пиктограмму с
логотипом Windows 95.
Подраздел
Shell
Подраздел
Shell идентификатора
содержит названия всех
действий, которые связаны
с конкретным типом файлов.
В подразделе-идентификаторе
batfile, который управляет
командными файлами,
предусмотрены подразделы
для редактирования,
открытия и печати. Каждое
действие определяется
параметрами,
перечисленными на вкладке
Типы файлов для типа "Пакетный
файл" MS-DOS и в
контекстном меню, которое
вызывается при щелчке
правой клавишей мыши на
изображении командного
файла .
Каждое
действие описывается
командной строкой.
Значение "По умолчанию"
для этого подраздела
всегда содержит командную
строку, в которой имеется
псевдопеременная %1. Она
указывает на файл, над
которым выполняется
действие. Например,
командная строка для
редактирования
командного файла MS-DOS
имеет следующий вид:
C:\Windows\Notepad.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
перечислены в разделе
HKCR\CLSID. Поле "По
умолчанию" каждого
подраздела 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" всегда
отображается серым цветом
(как отключенная).
Это
происходит потому, что
подраздел HKCR\batfile содержит
параметр 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 влияют только на
защищенные от правки
действия. В разделах,
описывающих действия (типа
HKCR\batfile\shell\open), параметры
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-формате и обходиться
без диалога "Открыть с
помощью", добавьте
подраздел HKCR\Unknown\Shell\
Notepad\Command со значением "По
умолчанию" C:\Windows\Notepad.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),
намного проще сделать это
через реестр. Найдите
раздел HKCU\SOFTWARE\
Microsoft\Windows\CurrentVersion\Policies\Explorer
и создайте поле параметра
типа DWORD с именем NoNetHood.
Если вы присвоите ему
значение 1 и перезапустите
систему,пиктограмма "Сетевое
окружение" не сможет
появиться. Для
восстановления ее
положения измените это
значение на 0.
Для
изменения других
пиктограмм, связанных с
аппаратурой, найдите
раздел HKLM\SOFTWARE\Microsoft\
Windows\CurrentVersion\explorer\Desktop\NameSpace.
Внутри этого раздела
каждая пиктограмма имеет
свой собственный параметр
CLSID, описанный выше, -
идентифицирующее
индивидуальные объекты 16-байт
значение - он указывает на
соответствующий
подраздел в HKCR\CLSID. Для
удаления пиктограммы
исправьте значение
парного параметра в HKCR\CLSID.
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}
Например, если
вы хотите изменить
пиктограмму "Корзина",
сначала следует найти
подраздел в
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer
\Desktop\NameSpace, у которого в
поле значения по
умолчанию записано "Корзина":
{645FF040-5081-101B-9F08- 00AA002F954E}.
Если удалить этот
подраздел, то система
уберет "Корзину" с
"Рабочего стола".
Однако можно просто
переименовать "Корзину",
отыскав соответствующий
CLSID (HKCR\CLSID\{645FF040-5081-101B-9F08-
00AA002F954E}) и изменив имя в
поле его значения по
умолчанию.
Кроме того,
можно создавать новые
версии аппаратных
пиктограмм, которые имеют
свойства "Переместить",
"Копировать" и "Удалить".
Например, пиктограмме The
Microsoft Network соответствует
CLSID {00028B00-0000-0000-C000-000000000046}.
Для создания новой
пиктограммы с именем MSNetwork
удалите раздел
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer
\Desktop\NameSpace\{00028B00-0000-0000-C000-
000000000046} и создайте новую
папку с именем:
MSNetwork.{00028B00-0000-0000-C000-000000000046}
Папка с таким
расширением приобретает
свойства оригинальной
пиктограммы The Microsoft Network,
но при этом ее можно
удалять или перемещать.
Как
отмечалось в начале
статьи, пиктограмму "Мой
компьютер" можно
изменить, отыскав
подраздел
HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\
DefaultIcon и указав файл с
новым изображением в поле
"По умолчанию".
Подобный метод можно
применять для других
пиктограмм, связанных с
аппаратурой. Единственная
переменная, необходимая
для этого, - параметр CLSID.
Просто перейдите к
соответствующему разделу
в HKCR\CLSID, а затем к
подразделу DefaultIcon. За
исключением "Корзины",
значение "По умолчанию"
этих разделов
представляет собой полный
маршрут доступа к файлу,
который содержит
соответствующую
пиктограмму.
Для "Корзины"
в разделе rNe)g§=2дк4ґgP=DefaultIcon
есть три параметра: "По
умолчанию", empty (пустая)
и full (полная). Параметр empty
определяет пиктограмму,
обозначающую пустую "Корзину",
тогда как full указывает на
пиктограмму "Корзины",
содержащей, по крайней
мере, один файл. Текущая
пиктограмма "Корзины"
хранится в поле "По
умолчанию".
Системные
пиктограммы
Windows 95
извлекает большинство
своих основных системных
пиктограмм из файла
C:\Windows\Shell32.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:\Windows\System\Shell32.dll, 6,
где 6
указывает на седьмую
пиктограмму.
Для
изменения системной
пиктограммы необходимо
создать новый раздел
HKLM\SOFTWARE\Microsoft\Windows\
CurrentVersion\explorer\ShellIcons (Если
установлен пакет Windows 95
Plus!, этот раздел уже есть.)
Значения параметров в
этом разделе - он
переопределяет функции
пиктограмм из файла Shell32.dll
- записываются в следующем
формате:
N = Filename, n
N - число от 0 до
41, указывающее на
конкретную пиктограмму в
Shell32.dll. Filename - маршрут
доступа к файлу с
пиктограммой, а n
обозначает пиктограмму в
этом файле.
Например,
пиктограмма 030 обычно
обозначает аббревиатуру.
Однако, если вы хотите
помечать аббревиатуры
пиктограммой 031,
необходимо создать
следующую запись в
разделе ShellIcons (помните,
отсчет ведется от 0, а не от
1):
29 = C:\Windows\System\Shell32.dll, 30.
Такие
изменения можно
осуществлять без
инициализации системы.
Чтобы система Windows могла
загружаться быстрее,
текущие значения ее
системных пиктограмм
хранятся в скрытом файле
C:\Windows\ShellIconCache. При
начальном запуске система
считывает необходимые
изображения из этого
файла или создает его
заново, если он
отсутствует. Однако, если
изменяются размеры
пиктограмм, Windows
перестраивает ShellIconCache "на
ходу". Для этого
щелкните правой кнопкой
мыши на "Рабочем столе",
выберите "Свойства" и
перейдите к вкладке "Оформление"
(Appearance). Затем в поле "Элемент"
(Item) выберите "Значок"
(Icon). Если вы измените
размер пиктограмм и
щелкните по кнопке "Применить"
(Apply), Windows перестроит папку
ShellIconCache и зафиксирует
изменения в реестре (тем
же способом легко можно
восстановить размер
пиктограмм).
Положение
пиктограмм на рабочем
столе
К сожалению,
Windows 95 не предусматривает
простого механизма
сохранения и
восстановления положения
пиктограмм на "Рабочем
столе". Если вы нечаянно
выберете пункт "Упорядочить
значки" (Arrange Icons), Windows
разместит уже
расставленные вами
пиктограммы строго по
алфавиту. Для сохранения
своих настроек вам
придется прибегнуть к
сложному методу правки
реестра, который зависит
от компьютера и даже может
изменяться со временем.
Положения
пиктограмм обычно
хранятся в одном из 29
подразделов раздела
HKCU\SOFTWARE\Microsoft\Windows\
CurrentVersion\Explorer\Streams. На нашем
компьютере они оказались
в подразделе HKCU\SOFTWARE\Microsoft\
Windows\CurrentVersion\Explorer\Streams\24.
Для поиска
подраздела 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:\Windows\StartMenu\Program \Startup
(C:\Windows\Главное меню\Программы\
Автозагрузка)) и, которая
также совместима сверху
вниз с INI-файлами.
В дополнение
к этим двум методам в
реестре имеется, по
крайней мере, шесть
разделов, которые
позволяют загружать
программы при запуске
системы. Система
автоматически выполняет
их при инициализации.
Четыре из них (Run, RunOnce,
RunServices и RunServicesOnce)
размещаются в разделе
HKLM\SOFTWARE\Microsoft\Windows\ CurrentVersion
и два (Run и RunOnce) - в разделе
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion.
Как
позволяют предположить их
имена, и в разделе RunOnce, и в
разделе RunServicesOnce
располагаются программы,
выполняемые только один
раз. Они запускаются при
следующем перезапуске
Windows, а затем система
удаляет их содержимое из
реестра. Программы из
других разделов
выполняются при каждом
запуске системы. Разделы
Run и RunOnce в HKLM содержат
прикладные программы,
которые должны
загружаться и выполняться
до запуска любой другой
программы. К числу таких
программ относятся
программы установки,
которые перезапускают
машину и завершают
настройку прежде, чем
будут вызваны программы
из обычного набора.
Когда
программы запускаются с
помощью разделов Run и RunOnce
в HKCU, они восстанавливают
то состояние, которое
сохранили перед последним
выходом из системы. Когда
такая программа
оповещается о выходе из
системы, она сохраняет
информацию об
использовавшихся файлах и
иных текущих параметрах в
этих двух разделах.
Разделы RunServices и RunServicesOnce
обеспечивают вызов
программ до вывода на
экран приглашения на вход
в систему. Подразделы в HKLM
выполняются для всех
пользователей на данной
машине, тогда как
подразделы в HKCU связаны с
конкретным пользователем.
Доступ к
файлам установки
При
установке дополнительных
файлов Windows 95 с помощью
диалога "Установка и
удаление программ"
(Add/Remove Prigrams) и "Панели
управления" система
находит файлы через
запись в разделе
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup.
Поле значения SourcePath
содержит маршрут доступа
к папке или накопителю.
Если система Windows 95
устанавливалась с компакт-диска,
значение SourcePath указывает
на накопитель CD-ROM. Если
применялись дискеты, оно
указывает на накопитель
на гибких дисках.
Это поле
может быть полезно, если
вы копируете установочные
диски Windows 95 на свой
жесткий диск. Например,
если вы копируете файлы в
папку C:\Winstall, измените
строковое значение
параметра SourcePath с A:\ на
C:\Winstall. Таким образом,
система всегда будет
искать правильную папку
при добавлении или
удалении программ.
Списки
последних команд и
документов
Когда из
меню "Пуск" (Start)
выбирается пункт "Выполнить"
(Run), с помощью
появляющегося окна
диалога можно быстро
запустить исполнимый файл
или открыть папку. Список
предшествующих команд
хранится в разделе
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
\RunMRU (MRU это стандартная
аббревиатура
словосочетания Most Recently Used
- самые последние из
использовавшихся). В этом
разделе содержатся до 28
параметров (в том числе
"По умолчанию"). Если
список заполнен, 26 записей
идентифицируются буквами
алфавита. В них содержатся
последние 26 команд (в
формате ASCII), которые вы
вводили в диалоге "Выполнить"
или в диалоге "Перейти"
(Go To) "Проводника". В
поле MRUList перечисляется 26
алфавитных параметров
согласно тому, как давно
они использовались.
Первая буква
соответствует последней
команде, вторая -
предпоследней и т. д.
Это
эффективный метод
хранения. Если повторно
запускается команда из
списка, системе
приходится изменять
только порядок букв в
строке MRUList. Если
выполняется новая команда,
последняя буква в строке
MRUList перемещается на
первую позицию, и
соответствующая запись
изменяется. Остальные 25
значений не требуется
изменять. Для удаления
элемента из списка
предшествующих команд
следует удалить
соответствующую ему букву
из строки MRUList и
перезапустить систему.
Если выбрать
"Документ" (Document) из
меню "Пуск", можно
увидеть последние 15
документов, которые
открывались двойным
щелчком кнопкой мыши или
через стандартный диалог
Windows 95. Этот список
вызывается из подраздела
HKCU\SOFTWARE\Microsoft\Windows\
CurrentVersion\Explorer\RecentDocs,
который содержит свой
параметр MRUList и 15 полей
значений, помеченных
буквами алфавита. В каждом
из этих 15 полей хранится
имя документа и имя его
ярлыка в C:\Windows\Recent (в
двоичном формате).
Псевдонимы
и маршруты доступа к
программам
В разделе
HKLM\SOFTWARE\Microsoft\Windows\
CurrentVersion\App 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 вам
этого и не придется делать..
|