Добавить в цитаты Настройки чтения

Страница 207 из 299



С помощью идентификаторов можно редактировать контекстное меню правой кнопки мыши различных файлов, добавляя туда команды работы с этими файлами. Так, к примеру, происходит при установке программы WinZip, после которой в контекстном меню каждого файла и папки появляется пункт "Add to Zip". Многие антивирусные программы, например, Antiviral Toolkit Pro, позволяют вызывать их из контекстного меню какого-либо файла для проверки именно его, помещая команду своего вызова в это меню.

Чтобы добавить возможность вызова программы из какой-либо библиотеки для работы с тем или иным типом файлов, в разделе CLSID создается подраздел вида {хххххххх-хххх-хххх-хххх-хххххххххххх} и как-нибудь именуется в его параметре "По умолчанию". Затем в этом подразделе создается подраздел InprocServer, а уже в его параметре "По умолчанию" указывается путь к библиотеке, в которой располагаются программы для работы с нужным типом файлов.

Далее в подразделе с именем, равным "внутреннему" имени нужного типа файла или его расширению, создается подраздел ShellEx. В нем могут располагаться так называемые "обработчики" подразделы с именами PropertySheetHandler, DropHandler и т. д., предназначенные для задания различных способов вызова программ для работы с файлами этого типа. И уже именно в них помещаются разделы (с произвольными именами, обычно отражающими названия программ, для которых они предназначены), в параметрах "По умолчанию" которых указываются соответствующие номера идентификаторов.

Идентификаторы, которые указаны в параметрах "По умолчанию" подразделов раздела ContextMenuHandler, добавляют команды связанных с ними библиотек в контекстное меню правой кнопки мыши. Если добавить идентификатор в подраздел раздела DragAndDropHandler (естественно, предварительно создав сам этот раздел), то команда, соответствующая этому идентификатору, будет вызвана, когда файл того типа, для которого все это расписывается, переносится в какую-либо папку при нажатой правой клавише мыши. То, что указано в разделе DropHandler, срабатывает, когда что-либо переносится мышью на сам файл, — например, когда WinRar добавляет файл в архив при его перетаскивании на иконку архива.

Если в разделе ShellEx раздела реестра с именем, соответствующим "внутреннему" имени какого-либо типа файла или его расширению, создать подраздел PropertySheetHandler, а в нем — подраздел с идентификатором в параметре "По умолчанию", то команда из библиотеки, на которую указывает этот идентификатор, выполняется при вызове пункта "Свойства" контекстного меню правой кнопки мыши файла этого типа и позволяет добавлять к окну свойств файла дополнительные вкладки. Например, так поступает программа DFolder (о ней рассказано в следующей главе), присоединяя к окну свойств папок вкладку с указанием занимаемого файлами этой папки физического места на жестком диске (рис. 14.5).

Рис. 14.5. Возможность появления в меню "Свойства" каждой папки такого окна, как справа, дана параметром в разделе PropertySheetHandler, показанном слева

Именно благодаря возможности использования подобных обработчиков ContextMenuHandler, PropertySheetHandler и др. программы могут изменять меню правой кнопки мыши как им необходимо. К примеру, добавлять в окно свойств окна для быстрого просмотра изображений. Причем такое окно появляется не для всех типов файлов, а только для тех, в подразделе ShellEx которых присутствует обработчик PropertySheetHandler, а в его подразделе указан нужный идентификатор, — то есть только для файлов картинок.

Параметры и разделы, изменяющие контекстное меню, вносятся программами в реестр при их инсталляции или из диалоговых окон самих программ.

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

В операционных системах Windows 2000 и Windows ХР данный раздел реестра устроен практически так же, как описано выше.

Краткий вывод. Каждый тип файлов, зарегистрированный в системе, представлен в разделе HKEY_CLASSES_ROOT системного реестра в двух местах:

1. В начале раздела, в подразделе с именем расширения этого типа файлов с точкой вначале. Здесь приводится "внутреннее" имя этот типа файлов, а также информация о включении данного типа в меню "Создать…".





2. В подразделе с именем, соответствующим "внутреннему" имени. Здесь указывается "официальное" имя этого типа файлов, а также указывается его иконка и определяются пункты контекстного меню правой кнопки мыши для него.

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

Пользовательский модуль

Следующий раздел системного реестра, если идти по порядку HKEY_CURRENT_USER. Это — информация, которая меняется от пользователя к пользователю. При входе в операционную систему под другим именем эта часть реестра будет другая. Он состоит из большого количества подразделов.

В разделе AppEvents записана информация о звуковых схемах и назначенных звуках в системе. Именно здесь хранятся те данные, что вы вводите в диалоге Звук Панели управления.

Раздел Clock, как нетрудно понять, посвящен часам — именно тем, что торчат в углу панели задач. Здесь — все их параметры.

Раздел Control Panel содержит в себе информацию о настройках внешнего вида операционной системы. Это, пожалуй, один из самых интересных разделов реестра, так как именно здесь настраиваются разного рода "красивости" интерфейса Windows. Подраздел Appearance содержит в себе информацию о всех возможных цветовых схемах Windows. Эти схемы закладываются в реестр при его создании и именно отсюда берутся данные для окна Свойства экрана — Оформление (рис. 14.6).

Рис. 14.6. А вот и схемы оформления…

В подразделе Colors расположена информация об оформлении стандартных элементов интерфейса Windows — границ окон, поверхности кнопок и их краев, полос заголовка окна и прокрутки и т. д. Все цвета представлены в виде трех чисел — интенсивности их красного, зеленого и синего компонентов. Некоторые из этих параметров могут быть заданы при создании цветовой схемы, а некоторые — изменены только в реестре. Если хотите, можете немного поиграть с интерфейсом вашей системы.

В подразделе Cursors хранится информация о выбранном наборе изображений курсора и о всех стандартных наборах таких изображений.

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