Опубликован: 15.10.2008 | Доступ: свободный | Студентов: 9917 / 2535 | Оценка: 4.37 / 4.14 | Длительность: 27:52:00
Лекция 4:

Реестр Windows Server 2003

HKEY_CLASSES_ROOT

HKEY_CLASSES_ROOT заполняется всеми видами базовой информации. У вас редко будет повод работать интерактивно в этом поддереве; это набор "строительных блоков", с помощью которых могут работать операционная система и приложения. В этом поддереве существуют два типа данных.

  • Информация, ассоциируемая с типами файлов.
  • Данные конфигурации для объектов COM.
Регистрация классов на уровне пользователя

Наиболее интересными в этом поддереве являются изменения, появившиеся в Windows 2000. Это поддерево является алиасом (псевдонимом), и его источником в Windows NT было поддерево HKEY_LOCAL_MACHINE\Software\Classes. В Windows Server 2003/2000 это поддерево остается алиасом, но его данные извлекаются из двух источников.

  • HKEY_LOCAL_MACHINE\Software\Classes.
  • HKEY_CURRENT_USER\Software\Classes.

Последний из этих разделов реестра не существовал в его нынешней конфигурации до Windows 2000. (Хотя такой раздел имеется в Windows 98, его содержимое отличается от одноименного раздела в Windows Server 2003/2000. В Windows 98 этот раздел содержит идентификаторы класса [ CLSID ] для используемых по умолчанию значков рабочего стола ОС.)

Этот новый источник на уровне пользователя для HKEY_CLASSES_ROOT в Microsoft назвали регистрацией классов на уровне пользователя (per-user class registration). Это означает, что на компьютерах с несколькими пользователями может содержаться различная информация о классах, которая регистрируется при установке ПО каждым конкретным пользователем. Информация на уровне отдельного пользователя может включать любое количество изменений в регистрации классов, что приводит к созданию нескольких наборов уникальных записей для ПО, которое устанавливается на данном компьютере.

Регистрация классов на уровне пользователя полезна для перемещающихся (блуждающих) пользователей (на многих предприятиях разделяемое использование компьютеров происходит реже, чем их использование перемещающимися пользователями). Независимо от компьютера, на котором выполняет вход пользователь, все идентификаторы классов, соответствия для типов файлов и другие связи с программным обеспечением из реестра не изменяются, поскольку информация о регистрации классов перемещается вместе с данным пользователем. Однако это средство используется, только если вы используете возможности IntelliMirror для создания профилей перемещающихся пользователей, поскольку операционная система загружает информацию регистрации классов после загрузки базового профиля пользователя, используя расширения IntelliMirror (информация регистрации классов записывается в локальную часть профиля во время процесса входа).

Вы не можете выполнять запись в реестр для использования регистрации классов на уровне пользователя; это задача программирования. Инструкции и средства для записи в разделы на уровне пользователей содержатся в комплектах разработки для программистов.

Данные HKEY_CLASSES_ROOT

Элементы данных в поддереве HKEY_CLASSES_ROOT снабжают операционную систему информацией об устанавливаемых объектах. Просматривая это поддерево, вы увидите два набора разделов, организованных в алфавитном порядке.

Первый набор разделов, содержащий все возможные расширения имен файлов от * до z*.

Второй набор разделов – это идентификаторы программ и объектов.

Соответствия для типов файлов. Хотя термин "соответствия для типов файлов" (file associations) использовался еще в Windows 3.1, современная реализация поддерева HKEY_CLASSES_ROOT стала намного больше как по размерам, так и функциям.

Подразделы, которые имеются для любого конкретного расширения имен файлов, содержат информацию, которая используется для процессов COM, VB, автоматизации и сценарных процессов. В панели данных для раздела расширения обычно указывается тип файлов, соответствующий данному расширению имен. например, раздел .avi содержит элемент данных типа REG_SZ с именем Content Type и значением video/avi.


Для зарегистрированных типов файлов имеются подразделы, содержащие информацию, которая используется системой при работе с этими типами файлов. Например, подраздел с именем ShellNew указывает операционной системе, как создать новый экземпляр файла этого типа. Некоторые разделы для расширений имеют подразделы, связывающие данное расширение с одной или несколькими программами (и каждый из этих подразделов имеет подраздел ShellNew).

Например, когда вы устанавливаете операционную систему, расширение .doc автоматически регистрируется для WordPad.exe. Если выбрать подраздел .doc в HKEY_CLASSES_ROOT, то появится элемент данных Default со значением WordPad.exe.Document.1. Если вы устанавливаете Microsoft Office, то в правой панели появится второй элемент данных с именем Content Type и значением application/msword. Дело в том, что процесс установки для Windows не перезаписывает соответствие для WordPad; он сам добавляет второе соответствие. Не все программы установки действуют таким образом, и вы можете встретить случаи, когда при установке приложения происходит запись поверх предыдущих соответствий для расширений имен файлов.

Если вам нужно изменить соответствие для расширений имен файлов, не используйте реестр. Вместо этого используйте вкладку File Types (Типы файлов) диалогового окна Folder Options (Свойства папки), которое можно вызвать из панели управления или из меню Tools (Сервис) для системных папок. Вы можете добавлять соответствия, если хотите ассоциировать несколько программ с одним расширением, или можете изменить соответствие с одной программы на другую.


Идентификаторы объектов. Второй набор разделов в HKEY_CLASSES_ROOT – это в основном идентификаторы программ и объектов вместе с некоторыми родительскими разделами, которые поддерживают другие классы информации (например, CLSID ). Почти все эти разделы имеют подразделы, а количество и тип подразделов зависит от объекта и типа информации об этом объекте, которая требуется операционной системе. Для регистрируемых типов файлов часто используются один или несколько следующих подразделов.

  • CLSID. Указывает уникальный идентификатор класса данного типа объектов.
  • DefaultIcon. Указывает файл, содержащий значок для этого типа файлов. Обычно это файл с расширением .exe или .dll. Обычно эти данные имеют формат Путь,x (где x – это целый идентификатор для значка, содержащегося в этом файле). Большинство файлов, для которых имеются значки, имеют несколько значков, и соответствующие идентификаторы нумеруются, начиная с 0.
  • Protocol. Содержит информацию, которая требуется системе для связывания, встраивания и редактирования данного типа файлов.
  • Shell. Имеет подразделы, в которых содержится информация о типах операций, которые вы можете выполнять с данным типом файлов.

Вы можете видеть действие данных из подраздела Shell в окне Windows Explorer или My Computer. Если щелкнуть правой кнопкой на файле с зарегистрированным расширением и выбрать пункт Open (Открыть), то система обратится к подразделу \Shell\Open\Command и выполнит команду, которая находится в этом элементе данных. Если выбрать пункт Print, то система использует команду, которая находится в подразделе \Shell\Print\Command.