В некоторых разделах встречаются параметры Content-Type. Это — указания Интернет-браузеру на тот случай, если он встретит подобный файл в Интернете. Существуют и другие возможные виды разделов, но подробное их описание выходит за рамки данной книги.
Некоторые типы файлов могут быть зарегистрированы в реестре по упрощенной схеме. При ее использовании "внутреннее" имя типа файлов не указывается, а те параметры, которые должны были бы присутствовать в разделе с "внутренним" именем, находятся в разделе с именем расширения файла. Такая схема тоже работает, но все же является не совсем корректной.
Каталог имеет только два "внутренних" имени и тем самым два подраздела — Folder и Directory, соответствующие его пустому и непустому состояниям. В каждом из этих подразделов содержатся команды, применяемые ко всему каталогу. В подразделе с именем "*" находятся команды, применяемые ко всем типам файлов, а в подразделе Unknown — к файлам, которые в реестре не зарегистрированы (то есть в нем нет подразделов с именами, соответствующими их расширениям). Подраздел с именем Drive соответствует логическому диску.
В подразделе с "внутренним" именем типа файла может содержаться также параметр EditFlag. В зависимости от его значения запрещаются те или иные параметры редактирования действий с этим типом файлов с помощью окна Вид-Параметры-Типы файлов, вызываемого из "Проводника". Вы, наверное, замечали, что редактировать через это окно действия с каталогом или логическим диском нельзя? Так вот это именно из-за значения параметра EditFlag[37]
.В разделе HKEY_CLASSES_ROOT также имеется подраздел CLSID, едва ли не самый большой во всем реестре. Он содержит в себе информацию об объектах операционной системы, имеющих свои идентификаторы — длинные числа в фигурных скобках, как бы большой список всех их имен. С помощью этого подраздела идет общение между различными компонентами системы, и именно он позволяет слаженно им работать и дает возможность добавлять новые объекты.
Объектами в операционной системе может стать все, что угодно — программы, папки, компоненты программ и др. Строго говоря, объект в программистском понимании — это все, что имеет имя и к чему можно обращаться, как к единому целому.
Этой возможностью пользуются разработчики программ, интегрирующихся в систему. Служебные папки, такие, как Панель управления, Удаленный доступ к сети, Принтеры, которые вы наверняка в свое время безуспешно искали на жестком диске, являются именно такими объектами и имеют свои идентификаторы. Идентификаторы также имеют и реальные папки, выполняющие в системе какие-либо функции, например, Рабочий стол, Корзина. Вы можете даже дать такой идентификатор какой-либо из своих папок (тогда ее, в частности, можно будет включить в окно "Мой компьютер", как показано на рисунке).
Совет.
Вот как это можно сделать1. Откройте раздел реестра HKEY_CLASSES_ROOT\CLSID и добавьте туда раздел с именем {FD4DF9E0-E3DE-11CE-BFCF-….любые 12 цифр и букв…}. Тем самым вы создадите еще один идентификатор объекта Windows. (Вообще говоря, и остальные цифры могут быть произвольными. Важно лишь, чтобы в реестре не оказалось двух одинаковых идентификаторов.)
2. Добавьте в этот раздел параметр По умолчанию = "Название папки". Здесь введите то имя, под которым вы хотите, чтобы папка отображалась в окне "Мой компьютер".
3. Добавьте в этот раздел подразделы с параметрами:
— Defaultlcon и параметр по умолчанию там — путь к желаемой иконке папки.
— InProcServer32 и параметр по умолчанию там — "shell32.dll", а также параметр "ThreadingModel" со значением "Apartment".
— Shell, в нем подраздел с именем, соответствующим желаемому названию команды по умолчанию для папки (например, "Открыть"), а в нем подраздел Command (то есть так же, как и для любого обычного типа файлов). Введите строку "c: \windows\explorer /n /root…путь к нужной папке…" в качестве значения параметра по умолчанию в подразделе Command. Можете добавить в раздел Shell и другие команды в таком же виде.
— ShellEx, в нем подраздел PropertySheetHandler, а в нем — подраздел с именем, равным имени всего раздела, который вы создали для своей папки (то есть {FD4DF9E0-E3DE-11CE-BFCF-….любые 12 цифр и букв…}). Это, впрочем, не обязательно, но желательно.
— ShellFolder, а в нем — параметр Attributes со значением 0.
Теперь ваша папка стала системным объектом — таким же, как, скажем, и "Удаленный доступ к сети", "Принтеры". У нее есть свой идентификатор — это длинное выражение в фигурных скобках. Если вы добавите его в качестве имени подраздела в раздел
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\mycompu ter\NameSpace, то она появится в окне "Мой компьютер" (имя у нее там будет то, которое вы задали на шаге 2). А чтобы разместить ее на Рабочем столе, добавьте ее идентификатор рядом в раздел Desktop\NameSpace раздела Explorer.