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

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


Глава 1. Настройка интерфейса. 1.8. Работа с ActiveX-объектами
Дата: 2 июля 2009, четверг

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

Кроме расширений файлов в корневом разделе HKCR хранятся все зарегистрированные в операционной системе ActiveX-объекты. Для этого в данном корневом разделе присутствует дочерний подраздел CLSID — каждый зарегистрированный в системе ActiveX-объект имеет свой собственный подраздел в данной ветви реестра, названный в честь CLSID-номера ActiveX-объекта.

ActiveX-объекты, отображающие значки

Сразу же давайте рассмотрим стандартные ActiveX-объекты, которые могут создавать свои собственные значки — именно работу с этими ActiveX-объектами мы и рассмотрим в данном разделе книги (а также с ActiveX-объектами, описанными в главе данной книги, посвященной папке ПАНЕЛЬ УПРАВЛЕНИЯ).

Таблица 1.53. Значки, отсутствующие в папке Панель управления

{15eae92e-f17a-4431-9f28-805e482dafd4} Получение программ
{1Fa9085f-25a2-489b-85D4-86326eedcd87} Управление беспроводными сетями
{208D2C60-3AEA-1069-A2D7-08002B30309d} Сеть (WORKGROUP)
{F02C1A0D-BE21-4350-88B0-7367FC96EF3c} Сеть
{20D04FE0-3AEA-1069-A2D8-08002B30309d} Компьютер
{21EC2020-3AEA-1069-A2DD-08002b30309d} Панель управления в классическом виде
{26EE0668-A00A-44D7-9371-BEB064C98683} Панель управления в виде по категориям
{5399E694-6CE5-4D6C-8FCE-1D8870fdcba0} Панель управления, отображаемая как ссылка
{2559a1f0-21d7-11d4-bdaf-00c04f60b9f0} Поиск
{2559a1f1-21d7-11d4-bdaf-00c04f60b9f0} Справка и поддержка
{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0} Выполнить
{2559a1f7-21d7-11d4-bdaf-00c04f60b9f0} Настройка доступа программ и умолчаний
{289978AC-A101-4341-A817-21EBA7FD046d} Sync Center Conflict folder
{2E9E59C0-B437-4981-A647-9C34B9B90891} Sync Setup Folder
{3080F90D-D7AD-11D9-BD98-0000947b0257} Свернуть все окна
{3e7efb4c-faf1-453d-89eb-56026875ef90} Приобретение программ через Интернет
{3f6bc534-dfa1-4ab4-ae54-ef25a74e0107} Восстановление системы
{450D8FBA-AD25-11D0-98a8-0800361B1103} Документы
{48e7caab-b918-4e58-a94d-505519c795dc} Главное меню
{59031a47-3f72-44a7-89c5-5595fe6b30ee} Папка профиля пользователя
{645FF040-5081-101B-9F08-00AA002F954E} Корзина
{67718415-c450-4f3c-bf8a-b487642dc39b} Компоненты Windows
{7007ACC7-3202-11D1-AAD2-00805FC1270e} Сетевые подключения
{992CFFA0-F557-101A-88ec-00DD010CCC48} Сетевые подключения
{71D99464-3B6B-475C-B241-E15883207529} Sync results folder
{7A9D77BD-5403-11d2-8785-2E0420524153} Учетные записи пользователей
{9f433b7c-5f96-4ce1-ac28-aeaa1cc04d7c} Центр обеспечения безопасности
{AFDB1F70-2A4C-11d2-9039-00C04F8EEb3e} Offlines file folders
{d450a8a1-9568-45c7-9c0e-b4f9fb4537bd} Установленные обновления

Подраздел ActiveX-объекта

Подраздел определенного ActiveX-объекта может содержать в себе все те же параметры и дочерние подразделы, которые содержат в себе сразу две ветви, описывающие расширения файлов — ветвь расширения файла и ветвь идентификатора.

Например, изображение значка ActiveX-объекта определяется при помощи дочернего подраздела DefaultIcon. А контекстное меню значка ActiveX-объекта формируется при помощи дочерних подразделов shell и shellex. То есть, при помощи подразделов, которые для расширений файлов хранятся в подразделе идентификатора.

В то же время, в подразделе ActiveX-объекта могут находиться параметры AlwaysShowExt и NeverShowExt. А как мы знаем, также эти параметры могут находиться в подразделе расширения файла. Например, по умолчанию параметр NeverShowExt используется для ActiveX-объектов {888DCA60-FC0A-11CF-8F0F-00C04FD7D062} (конечная сжатая ZIP-папка для отправки), {9E56BE60-C50F-11CF-9A2C-00A0C90A90CE}, (почтовая служба), {9E56BE61-C50F-11CF-9A2C-00A0C90A90CE} (ярлык на рабочем столе), {ECF03A32-103D-11D2-854D-006008059367} (хранилище "Мои документы").

Отображение значков ActiveX-объектов

Одной из интересных возможностей, которую поддерживают ActiveX-объекты, создающие свои собственные значки, является возможность создания таких значков в специальных папках операционной системы. Например, именно благодаря такой возможности мы добавляли и удаляли значки ActiveX-объектов из папки ПАНЕЛЬ УПРАВЛЕНИЯ. Однако папка ПАНЕЛЬ УПРАВЛЕНИЯ — не единственная папка, в которой можно создать значок, формируемый ActiveX-объектом.

Присвоение свойств ActiveX-объекта папке

Собственно говоря, большинство значков, формируемых при помощи ActiveX-объектов, можно создать в любой папке. Для этого достаточно просто создать папку в нужно вам папке, после чего к имени созданной папки необходимо добавить строку .{CLSID-номер соответствующего ActiveX-объекта}.

Например, чтобы создать папку, открывающую каталог ГЛАВНОЕ МЕНЮ, достаточно создать папку, например, с именем Главное меню.{48e7caab-b918-4e58-a94d-505519c795dc}.

Отображение значка в папке Компьютер

Чтобы отобразить значок ActiveX-объекта в папке КОМПЬЮТЕР, достаточно создать подраздел, названный в честь CLSID-номера нужного ActiveX-объекта, в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\MyComputer\NameSpace.

Отображение значка в папке Рабочий стол

Чтобы отобразить значок ActiveX-объекта на рабочем столе, достаточно создать подраздел, названный в честь CLSID-номера нужного ActiveX-объекта, в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace.

Отображение значка в папках сетевых компьютеров

Чтобы отобразить значок ActiveX-объекта в сетевой папке, достаточно создать подраздел, названный в честь CLSID-номера нужного ActiveX-объекта, в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\NetworkNeighborhood\NameSpace.

Скрытие значков ActiveX-объектов

Операцией, обратной отображению значка ActiveX-объекта, является операция скрытия значка. Необходимость выполнения этой операции также часто стоит перед пользователем. И выполнить ее довольно просто — достаточно удалить подраздел, соответствующий значку ActiveX-объекта, из одного из рассмотренных выше подразделов Namespaces. Однако также эту операцию можно выполнить и другими способами.

Скрытие значка с рабочего стола

Например, скрыть значок ActiveX-объекта с рабочего стола можно при помощи одного из двух подразделов ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\HideDesktopIcons.

Чтобы скрыть значок ActiveX-объекта с рабочего стола при использовании классического меню ПУСК, необходимо создать параметр DWORD-типа, названный в честь CLSID-номера скрываемого ActiveX-объекта, в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\HideDesktopIcons\ClassicStartMenu. После этого созданному параметру нужно присвоить значение 1.

Чтобы скрыть значок ActiveX-объекта с рабочего стола при использовании нового меню ПУСК, необходимо также создать параметр DWORD-типа, названный в честь CLSID-номера скрываемого ActiveX-объекта, и присвоить ему значение 1. однако создать параметр нужно в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\HideDesktopIcons\NewStartPanel.

Еще одним способом скрытия значков ActiveX-объектов с рабочего стола является использование параметра строкового типа System.HideOnDesktop, расположенного в ветви реестра вида HKCR\CLSID\{CLSID-номер соответствующего ActiveX-объекта}\ShellFolder. Чтобы скрыть значок ActiveX-объекта, достаточно данному параметру присвоить значение 1.

Скрытие ActiveX-объекта при отображении образцов и фильтров

Также вы можете полностью скрыть какой-либо ActiveX-объект при использовании вида проводника с отображением образцов и фильтров (используется по умолчанию и изменить это можно при помощи переключателя поля ЗАДАЧИ, расположенного на вкладке ОБЩИЕ диалога СВОЙСТВА ПАПКИ).

В этом случае чтобы скрыть значок ActiveX-объекта достаточно в ветви реестра вида HKCR\CLSID\{CLSID-номер соответствующего ActiveX-объекта}\ShellFolder создать параметр строкового типа HideInWebView.

Запрет на выполнение ActiveX-объекта

Кроме того, вы можете полностью запретить взаимодействие операционной системы с каким-либо ActiveX-объектом. Для этого нужно воспользоваться ветвью реестра SOFTWARE\Microsoft\Windows\CurrentVersion\policies\NonEnum. Достаточно в данной ветви создать параметр DWORD-типа, названный в честь CLSID-номера запрещенного ActiveX-объекта, после чего присвоить данному параметру значение 1. Именно таким способом при помощи групповых политик раздела КОНФИГУРАЦИЯ ПОЛЬЗОВАТЕЛЯ/АДМИНИСТРАТИВНЫЕ ШАБЛОНЫ/РАБОЧИЙ СТОЛ скрываются ActiveX-объекты, представленные в таблице ниже.

Еще одним способом запрета взаимодействия Windows с ActiveX-объектом является использование параметра DWORD-типа Attributes — этому параметру достаточно присвоить значение 0x00100000. Находиться этот параметр может либо в ветви реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{CLSID-номер соответствующего ActiveX-объекта}\ShellFolder, либо в ветви HKCR\CLSID\{CLSID-номер соответствующего ActiveX-объекта}\ShellFolder.

Таблица 1.54. Ветвь HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum

{20d04fe0-3aea-1069-a2D8-08002b30309d} Удалить значок «Компьютер» с рабочего стола
{645FF040-5081-101B-9F08-00AA002F954E} Удалить значок «Корзина» с рабочего стола

Другие возможности настройки

Кроме настройки контекстного меню значков ActiveX-объектов при помощи подразделов shell и shellex, то есть, редактирования списка команд контекстного меню, существует ряд дополнительных возможностей настройки отображения контекстного меню значков ActiveX-объектов.

Отображение стандартных команд идентификатора Folder

Контекстное меню большинства значков ActiveX-объектов содержит в себе не только пункты, определенные при помощи подраздела shell самого ActiveX-объекта, но и определенные при помощи подраздела shell идентификатора Folder. Например, к таким пунктам относятся команды ОТКРЫТЬ и ПРОВОДНИК.

Чтобы запретить отображение пунктов идентификатора Folder, достаточно создать параметр строкового типа HideFolderVerbs в ветви реестра вида HKCR\CLSID\{CLSID-номер соответствующего ActiveX-объекта}\ShellFolder.

Скрытие названия

Также существует возможность сокрытия названия значка для ActiveX-объекта. По умолчанию название значка Active-объекта хранится в параметре (по умолчанию) ветви вида HKCR\CLSID\{CLSID-номер соответствующего ActiveX-объекта}. Некоторые ActiveX-объекты позволяют редактировать значение этого параметра при помощи своего контекстного меню, другие же ActiveX-объекты не содержат этой возможности. Независимо от этого, если вы создадите параметр строкового типа (или любого другого) WantsFORDISPLAY в ветви реестра вида HKCR\CLSID\{CLSID-номер соответствующего ActiveX-объекта}\ShellFolder, тогда поле имени значка под значком ActiveX-объекта отображаться не будет. А следовательно, не будет отображаться и само название значка.

Ниже приведен REG-файл (расположение на прилагающемся к книге компакт-диске — Файлы реестра\Интерфейс\HideNameRecent.reg), который скрывает название значка КОРЗИНЫ. А еще ниже представлен рисунок 1.14, отображающий результат импортирования данного .reg-файла.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder]
"WantsFORDISPLAY"=dword:00000000

Рис. 1.14. Скрытие названия значка Корзины

1.9. Заключение

В данной главе мы с вами рассмотрели лишь те возможности настройки интерфейса операционные системы, которые нельзя изменить никакими другими стандартными функциями Windows. Будь то стандартный диалог, программа или групповая политика.

Описание параметров реестра, которые также можно изменить при помощи стандартных диалогов или программ Windows, не входит в содержимое данной книги. А вот описание стандартных групповых политик Windows в этой книге присутствует — все они приведены в пятой главе книги.

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

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

В избранное