Отправляет email-рассылки с помощью сервиса Sendsay

Реестр Windows

  Все выпуски  

Реестр Windows


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
 

Реестр  Windows'

Выпуск 6

Реестр Windows

Здравствуйте уважаемые подписчики!

Сегодня в выпуске:

При выборе имени файла двойным щелчком в Windows выбранный файл будет открыт в приложении, ассоциированном с его типом. Например, двойной щелчок на файле с расширением DOC открывает этот файл в Microsoft Word (если Word установлен на компьютере). Файл открывается при помощи ассоциированного с его типом приложения потому, что расширение его имени хранится в реестре вместе с указанием на приложение. В этой и ближайших рассылках будут описаны различные методы регистрации новых типов файлов и удаление устаревших типов файлов, а также методы расширения набора команд, применимых к данному типу файлов.

Типы файлов и их связи с определёнными приложениями сохраняются в реестре в процессе инсталляции нового приложения. Программа установки приложения регистрирует расширение имени файла и команды, применяемые к данному типу файлов. Вся эта информация хранится в ветви HKEY_CLASSEA_ROOT.
Каждому зарегистрированному типу файлов должны соответствовать два подраздела в разделе HKEY_CLASSEA_ROOT. Первый подраздел определяет расширение имени файла и содержит информацию (name_ID). Этот идентификатор в дальнейшем используется как имя второго подраздела, в котором хранятся описание команд, применяемых к данному типу файлов. Давайте рассмотрим эту структуру на примере конкретного приложения (в случае расширения BAT).

Раздел .bat определяет расширение (BAT) и содержит связанные с ним параметры (name_ID). В данном случае значение параметра является строкой "batfile", которая определяет уникальное имя для второго подраздела. (Можно использовать любое имя, которое может быть присвоено разделу).

Несмотря на то что расширение BAT регистрируется при добавлении в реестр подраздела .bat, Windows нуждается в дополнительной информации о том, что делать с BAT-файлом, т. е. в нескольких исполняемых командах, позволяющих пользователю, например, открывать этот файл двойным щелчком. Эти команды содержатся во втором разделе batfile. Второй параметр, определяет текст описания для данного типа файлов - "Пакетный файл MS_DOS". Это описание появляется в проводнике Windows в столбце Тип, а также в списке зарегистрированные типы файлов вкладки Типы файлов диалога Свойства папки. Параметр EditFlags разрешает или запрещает возможности редактирования в диалоге Изменения свойств типа файлов. Подразделы раздела batfile являются более содержательными чем его параметры.

Если открыть любое окно Windows, то каждый файл будет отображен в нём в виде значка. Каждый зарегистрированный тип файлов имеет свой значок, облегчающий распознавание данного типа. Информация о каждом таком значке определена в подразделе DefaultIcon. Параметр По умолчанию в этом разделе содержит путь и имя файла со значком. Например, для BAT-файла этот параметр указывает на файл SHELL32.DLL в каталоге Windows\System, поскольку этот файл содержит значок, связанный с BAT-файлом. Поскольку файл SHELL32.DLL содержит сразу несколько разных значков, необходим индекс для выбора подходящего значка. Итак, параметр для BAT-файла имеет приблизительно следующее значение:
"C:\Windows\System\Shell32.dll,-153"
Для других типов файлов этот путь может адресовать другие EXE и DLL-файлы, например:
"C:\Windows\Notepad.exe, 1"
Такая строка означает использование значка Блокнот в качестве стандартного значка для зарегистрированного типа файлов.

Запомни!


Как известно, в случае, когда источник (файл EXE, DLL или ICO) содержит более одного значка, необходимо указывать индекс значка. Значки нумеруются положительными числами, начиная с нуля. Несмотря на это, если посмотреть на значение параметра По умолчанию в разделе batfile\Defaulticon (см. выше), то можно увидеть, что индекс - это отрицательное число (-153). В подобных случаях значок назначается с использованием ресурса, содержащегося в файле EXE или DLL. Отрицательное значение определяет идентификатор ресурса, таким образом, "C:\Windows\System\Shell32.dll, -153" означает, что в качестве значка будет использован ресурс с идентификатором -153. Для использования ресурса в качестве значка необходимо знать его идентификатор.

Второй подраздел batfile называется shell. Этот подраздел важен, поскольку Windows получает из него информацию о том, какие действия оболочка может осуществлять с файлами типа BAT. Например, двойной щелчок на файле зарегистрированного типа вызывает исполнение определённых команд.
Подраздел shell содержит другие подразделы, определяющие действия, которые могут быть осуществлены с данным типом файлов. Если выбрать правым щелчком файл с расширением BAT, то в контекстном меню будет присутствовать команда Открыть, Печать и Изменить. При выборе BAT-файла двойным щелчком по умолчанию исполняется команда Открыть.
Каждый подраздел может содержать подраздел command. Этот подраздел содержит командную строку в параметре По умолчанию. Подразделы open и print также содержат подраздел command. Параметры По умолчанию подраздела command содержат строку с именем исполняемого приложения, которое будет запущено, когда строка будет выбрана в контекстном меню. Командная строка edit (Изменить) подраздела batfile выглядит примерно следующим образом: "C:\WINDOWS\NOTEPAD.EXE %1"
Легко понять смысл этой записи - она содержит имя диска, путь и имя приложения. Когда пользователь выберет команду Изменить (Edit) контекстного меню, будет запущено приложение Notepad, а параметр %1 будет заменён путём и именем выбранного файла. Если приложение нуждается в дополнительных параметрах, то можно добавить эти параметры в командную строку.

Третий подраздел ветви batfile, называется shellex, содержит информацию о расширениях оболочки. Windows предполагает специальный обработчик страниц свойств для этого типа файлов. Подраздел, содержащийся в разделе PropertySheetHandlers, выглядит зашифрованным, но на самом деле его функции и атрибуты весьма просты. Этот подраздел определяет идентификатор класса для обработчика страниц свойств. Этот идентификатор является шестнадцатибайтным числом, Определяющим класс ActiveX для обработчика страниц свойств. Значение заключено в фигурных скобках: {86F19A00-42A0-1069-A2E9-08002B30309D}. Его можно представить как номер телефона. Подобно тому, как телефонный номер соответствует одному человеку, номер CLSID соответствует определённому модулю ActiveX, содержащему этот идентификационный код. Только один модуль может содержать определённый код, и именно этот модуль будет активизирован, если выбрать файл правой кнопкой мыши и затем выбрать команду Свойства контекстного меню. Модуль затем обрабатывает запрос и отображает страницы свойств, соответствующие данному типу файлов.

Ниже приведен пример REG-файла, в который экспортированы обе ветви BAT-файла.
REGEDIT4

[HKEY_CLASSES_ROOT\.bat]
@="batfile"

[HKEY_CLASSES_ROOT\batfile]
@="Пакетный файл MS-DOS"
"EditFlags"=hex:d0, 04, 00, 00

[HKEY_CLASSES_ROOT\batfile\shell]
@=""

[HKEY_CLASSES_ROOT\batfile\shell\open]
@=""
"EditFlags"=hex:00, 00, 00, 00

[HKEY_CLASSES_ROOT\batfile\shell\open\command]
@="\"%1\" %"

[HKEY_CLASSES_ROOT\batfile\shell\print]
@=""

[HKEY_CLASSES_ROOT\batfile\shell\print\command]
@="C:\WINDOWS\NOTEPAD.EXE /p %1"

[HKEY_CLASSES_ROOT\batfile\shell\edit]
@="&Изменить"

[HKEY_CLASSES_ROOT\batfile\shell\edit\command]
@="C:\WINDOWS\NOTEPAD.EXE %1"
[HKEY_CLASSES_ROOT\batfile\shellex]
[HKEY_CLASSES_ROOT\batfile\shellex\PropertySheetHandlers]

[HKEY_CLASSES_ROOT\batfile\shellex\PropertySheetHandlers]
{86F19A00-42A0-1069-A2E9-08002B30309D}
@=""

[HKEY_CLASSES_ROOT\batfile\DefaultIcon]
@="C:\WINDOWS\SYSTEM\shell32.dll,-153"

Замечание!


Этот REG-файл содержит всю информацию, необходимую для регистрации нового типа файлов: стандартный значок, команды и расширения оболочки. Можно использовать этот REG-файл или его часть в качестве шаблона для регистрации других типов файлов.

Запомни!


Имейте в виду, что можно серьёзно повредить свою систему, изменяя записи реестра. Всегда создавайте резервную копию реестра перед тем как пытаться его менять. Производите изменения аккуратно!
Уважаемые подписчики, с вашей помощью я хочу открыть новую рубрику "Ваши вопросы" в этой рассылке. Прошу вас подумать и задать мне интересующий вас вопрос. Вопросы направляйте на kindkettle@mtu-net.ru, отвечу всем!
Реестр Windows Subscribe.Ru
Подпиши своего друга


http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное