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

Секреты Windows: статьи о реестре, rundll32.exe, программах


Глава 1. Настройка интерфейса. 1.7. Настройка зарегистрированных файлов - окончание
Дата: 27 июня 2009, суббота

Полезные ссылки

"Журнал Эффективная работа на компьютере"- компьютер для начинающих.
Бесплатный Журнал Эффективная работа на компьютере. Научитесь грамотно работать с полезными и нужными утилитами, узнайте что-то новое для себя из авторских статей. Ни на одном форуме вам не расскажут, того что могу дать вам я. Ведь видеоматериал усваивается человеком в несколько раз лучше, чем обычный печатный текст. В статьях и уроках используется мой личный опыт, а не пустая переписка текстов с сайтов, которая возможно даже не работает! Прежде чем что-то сообщить, я проверяю действие тех или иных программ и методов, выявляю их эффективность. И только после этого преподношу это вам.

С уважением Артём Ющенко.

Адрес сайта http://artomu.com
E-mail: admin@artomu.com

Новости нашего сайта:

В конец записи

Подраздел идентификатора

Основные сведения о работе с файлами соответствующего расширения хранятся в подразделе идентификатора. Среди параметров данного подраздела следует обратить внимание только на параметр (по умолчанию) — он определяет описание файлов данного расширения. Остальные сведения о файле хранятся в дочерних подразделах подраздела идентификатора.

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

Таблица 1.47 Стандартные идентификаторы операционной системы Windows Vista

  • Unknown. Применяются для всех незарегистрированных файлов.
  • *. Применяются для всех файлов.
  • AllFilesystemObjects. Применяются для всех объектов (расширений файлов, дисков, папок).
  • Drive. Применяются для разделов дисков.
  • Folder. Применяются для папок.
  • Directory. Применяются для папок с файлами.

Обратите внимание на идентификатор Directory. В нем содержится не только описание контекстного меню, применяемого для папок с файлами, но и, также, описание контекстного меню рабочего стола — оно хранится в ветви HKCR\Directory\Background. Работать с данной ветвью реестра нужно так же, как и с ветвями обычных идентификаторов файлов.

Определение значка файла

Чтобы определить значок для файлов соответствующего расширения, достаточно указать путь к значку в параметре (по умолчанию) ветви реестра вида HKCR\«идентификатор»\DefaultIcon.

Контекстное меню файла

Команды контекстного меню файлов соответствующего расширения хранятся в ветвях реестра вида HKCR\«идентификатор»\shell и HKCR\«идентификатор»\shellex. Эта ветвь реестра будет описана в следующем разделе данной главы книги.

Контекстное меню: раздел shell

Большинство команд контекстного меню файлов описываются при помощи подразделов ветви реестра вида HKCR\«идентификатор»\shell. Эти подразделы называются «глаголами», и их название либо не имеет никакого значения, либо определяет название пункта контекстного меню, создаваемого при помощи данной ветви реестра. Чтобы операционная система использовала название подраздела для названия создаваемого им пункта контекстного меню, необходимо, чтобы параметр (по умолчанию) подраздела не имел никакого значения. Кроме того, необходимо, чтобы в подразделе отсутствовал параметр расширенного строкового типа MUIVerb. В противном случае значения описанных выше параметров будут переопределять название подраздела ветви HKCR\«идентификатор»\shell.

Кроме параметра MUIVerb в ветви реестра вида HKCR\«идентификатор»\shell\«глагол» могут присутствовать и другие параметры. Как правило, они имеют строковый тип. Большинство из них перечислено в таблице 1.48.

Таблица 1.48. Ветвь HKCR\«идентификатор»\shell\«глагол»

  • (по умолчанию). Хранит название пункта, отображаемого в контекстном меню.
  • LegacyDisable. Присутствие этого параметра запрещает отображение данного пункта в контекстном меню.
  • ProgrammaticAccessOnly. Присутствие параметра запрещает отображение данного пункта в контекстном меню, разрешая только программный доступ к нему.
  • MUIVerb. Переопределяет значение параметра (по умолчанию).
  • NoWorkingDirectory. Присутствие параметра говорит о том, что при работе программы, запускаемой данным пунктом, не нужно указание рабочего каталога.
  • Extended. Присутствие параметра говорит о том, что данный пункт будет отображаться в контекстном меню только при нажатии клавиши Shift.

Кроме параметров в ветви реестра вида HKCR\«идентификатор»\shell\«глагол» должен присутствовать дочерний подраздел command. Его присутствие обязательно, ведь именно его параметр (по умолчанию) содержит в себе команду, которая будет выполняться при выборе пункта контекстного меню, определяемого данным «глаголом».

Для наглядности в листинге 1.05 представлена основная структура подраздела «глагола», достаточная для того, чтобы создаваемая вами команда контекстного меню работала. На этом листинге приведен пример .reg-файла, при помощи которого создается команда контекстного меню файлов с расширением .testfile — расширением, используемым нами и в предыдущем примере.

Листинг 1.05. Создание команды контекстного меню
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.testfile\shell\test]
 ="Создаваемый пункт контекстного меню"

[HKEY_CLASSES_ROOT\IDtesfile\shell\test\command]
 ="Команда, которая будет выполняться"

Примеры добавления команд контекстного меню

Также в качестве примера давайте посмотрим на несколько возможностей добавления дополнительных пунктов контекстного меню различных файлов.

Команда открытия в блокноте для незарегистрированных файлов Чтобы создать команду для открытия файлов с неизвестным расширением в блокноте, достаточно присвоить параметру (по умолчанию) ветви реестра HKCR\Unknown\shell\Открыть в Notepad\command значение notepad.exe %1.

REG-файл, добавляющий эту команду, представлен ниже (расположение на прилагающемся к книге компакт-диске — Файлы реестра\Интерфейс\AddContextNotepad.reg.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Unknown\shell\Открыть в Notepad\command]

 ="notepad.exe %1"

Команда Открыть с помощью… для исполняемых файлов Также можно создать команду, вызывающую диалог ВЫБОР ПРОГРАММЫ для исполняемых файлов (по умолчанию этот диалог никак нельзя вызвать для исполняемых файлов). Для этого достаточно в параметре (по умолчанию) ветви реестра HKCR\exefile\shell\Открыть с помощью\command создать значение rundll32.exe shell32.dll,OpenAs_RunDLL %1 %2.

REG-файл, добавляющий эту команду, представлен ниже (расположение на прилагающемся к книге компакт-диске — Файлы реестра\Интерфейс\AddContextOpenWithExe.reg.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\Открыть с помощью\command]

 ="rundll32.exe shell32.dll,OpenAs_RunDLL %1 %2"

Контекстное меню: раздел shellex

Кроме ветви реестра вида HKCR\«идентификатор»\shell, для добавления команд контекстного меню может использоваться ветвь вида HKCR\«идентификатор»\shellex. Однако возможности этой ветви реестра не ограничены только добавлением команд контекстного меню — с ее помощью регистрируются дополнительные возможности работы с файлами соответствующего типа, реализованные при помощи ActiveX-объектов.

В ветви реестра вида HKCR\«идентификатор»\shellex может присутствовать ряд дочерних подразделов с определенными названиями. Чтобы зарегистрировать дополнительную возможность, реализуемую ActiveX-объектом, достаточно создать подраздел в одном из дочерних подразделов ветви HKCR\«идентификатор»\shellex, после чего присвоить созданному подразделу название, соответствующее CLSID-номеру регистрируемого ActiveX-объекта. В зависимости от подраздела, в котором будет создан подраздел ActiveX-объекта, зависит действие, которое ActiveX-объект выполняет.

Итак, в таблице 1.49 представлены основные подразделы, которые могут находиться в ветви реестра HKCR\«идентификатор»\shellex.

Таблица 1.49. Ветвь HKCR\«идентификатор»\shellex

  • IconHandler. Хранит обработчики значка, используемые либо для формирования значка файла, либо для значка, отображаемого в диалоге Свойства.
  • PropertySheetHandlers. Добавляет дополнительные вкладки диалога Свойства.
  • ContextMenuHandlers. Добавляет дополнительные пункты контекстного меню.
  • DataHandler. Настраивает взаимодействие открываемого файла с буфером обмена.
  • DropHandler. Настраивает действия, выполняемые при операции drag-n-drop.

Подраздел PropertySheetHandlers

При помощи подраздела PropertySheetHandlers к диалогу СВОЙСТВА для файлов соответствующего типа добавляются дополнительные вкладки. В качестве примера давайте рассмотрим, как именно добавляются стандартные вкладки к диалогам различных идентификаторов.

Диалог Свойства разделов дисков

Диалог СВОЙСТВА для значков дисков, отображаемых в папке КОМПЬЮТЕР, формируется на основе ветви реестра HKCR\Drive\shellex\PropertySheetHandlers. В данной ветви реестра содержатся дочерние подразделы, описанные в таблице 1.50.

Таблица 1.50. Ветвь HKCR\Drive\shellex\PropertySheetHandlers

{1f2e5c40-9550-11ce-99d2-00aa006e086c} Безопасность
{596AB062-B4D2-4215-9F74-E9109B0A8153} Предыдущие версии
{7988B573-EC89-11cf-9C00-00AA00A14F56} Квота
{ef43ecfe-2ab9-4632-bf21-58909dd177f0} Настройка
*{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6} Доступ

*Данное значение находится в параметре (по умолчанию) подраздела Sharing.

Подраздел ContextMenuHandlers

Именно с помощью данного подраздела могут добавляться дополнительные команды к контекстному меню файлов. Ниже мы рассмотрим как некоторые из стандартных команд контекстного меню идентификаторов Windows, так и примеры добавления своих команд.

Контекстное меню разделов диска

Дополнительные команды добавляются к контекстному меню значков дисков при помощи ветви реестра HKCR\Drive\shellex\ContextMenuHandlers. В таблице 1.51 представлены CLSID-номера основных ActiveX-объектов, используемых для этого, а также названия команд, которые они добавляют.

Таблица 1.51. Ветвь HKCR\Drive\shellex\ContextMenuHandlers

{596AB062-B4D2-4215-9F74-E9109B0A8153} Восстановить прежнюю версию
{fbeb8a05-beee-4442-804e-409d6c4515e9} Записать на диск
*{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6} Общий доступ

*Данное значение находится в параметре (по умолчанию) подраздела Sharing.

Контекстного меню рабочего стола

Добавление дополнительных команд к контекстному меню рабочего стола выполняется при помощи ветви реестра HKCR\Directory\Background\ShellEx\ContextMenuHandlers. Например, вы можете добавить к контекстному меню рабочего стола одну из команд, описанных в таблице 1.52 (только одну из них, если вы добавите несколько, последняя добавленная вами команда заменит предыдущую).

Таблица 1.52. Ветвь HKCR\Directory\Background\ShellEx\ContextMenuHandlers

{2559a1f0-21d7-11d4-bdaf-00c04f60b9f0} Поиск
{2559a1f1-21d7-11d4-bdaf-00c04f60b9f0} Справка и поддержка
{3080f90e-D7ad-11d9-bd98-0000947b0257} Переключение окон
{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0} Выполнить
*{645ff040-5081-101b-9f08-00aa002f954e} Очистить корзину
*{32714800-2e5f-11d0-8b85-00aa0044f941} Find People

*эти команды не замещаются другими командами.

REG-файл, добавляющий к контекстному меню рабочего стола команду ВЫПОЛНИТЬ, представлен ниже (расположение на прилагающемся к книге компакт-диске — Файлы реестра\Интерфейс\AddRunContext.reg.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\ShellEx\ContextMenuHandlers\{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}]

Добавление команд контекстного меню

Также давайте рассмотрим несколько дополнительных примеров добавления команд контекстного меню файлов при помощи ветвей реестра вида HKCR\«идентификатор»\shellex.

Команда Копировать в папку… для папок Для добавления этой команды достаточно параметру (по умолчанию) ветви HKCR\Folder\shellex\ContextMenuHandlers\CopyTo задать значение {C2FBB630-2971-11D1-A18C-00C04FD75D13}.

Команда Переместить в папку… для папок Для добавления этой команды достаточно параметру (по умолчанию) ветви HKCR\Folder\shellex\ContextMenuHandlers\MoveTo задать значение {C2FBB631-2971-11d1-A18C-00C04FD75D13}.

Команда Добавить в список записи для папок Данная команда позволяет запустить проигрыватель Windows Media с открытой вкладкой ЗАПИСЬ, в списке которой уже будут отображаться файлы из соответствующей папки — вам будет достаточно лишь нажать на кнопку НАЧАТЬ ЗАПИСЬ, чтобы записать музыкальные файлы из папки на диск.

Для добавления этой команды достаточно параметру (по умолчанию) ветви HKCR\Folder\shellex\ContextMenuHandlers\CopyToDisk задать значение {8DD448E6-C188-4aed-AF92-44956194EB1F}.

Команда Воспроизвести с помощью Windows Media для папок Данная команда позволяет запустить проигрыватель Windows Media Player с уже загруженными в плей-лист музыкальными файлами, которые операционная система найдет в соответствующей папке.

Для добавления этой команды достаточно параметру (по умолчанию) ветви HKCR\Directory\shellex\ContextMenuHandlers\OpenInFolder задать значение {CE3FB1D1-02AE-4a5f-A6E9-D9F1B4073E6C}.

REG-файл, добавляющий данную команду, представлен ниже (расположение на прилагающемся к книге компакт-диске — Файлы реестра\Интерфейс\AddWMPContext.reg.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\OpenInFolder]

 ="{CE3FB1D1-02AE-4a5f-A6E9-D9F1B4073E6C}"

Команды Воспроизвести с помощью проигрывателя Windows Media и Добавить в список проигрывателя Windows Media для папок Данные команды позволяют либо запустить проигрыватель Windows Media Player с уже загруженными в плей-лист музыкальными файлами, которые операционная система найдет в соответствующей папке, либо добавить эти музыкальные файлы к плей-листу воспроизводимых в данный момент песен.

Для добавления этих команд достаточно параметру (по умолчанию) ветви HKCR\Directory\shellex\ContextMenuHandlers\AddToList задать значение {F1B9284F-E9DC-4e68-9D7E-42362A59F0FD}.

Продолжение следует

Рейтинг: 4.00 [ 1 ] 
Оцените: 1 2 3 4 5
moemesto.ru bobrdobr.ru - добавить в социальные закладки
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=568

В избранное