Вкл\Выкл свет
Отображение
Значки

Еще одной возможностью, которую предоставляет пользователям Windows, является определение тех значков ActiveX‑объектов, которые будут отображаться на Рабочем столе, в папках Панель управления и Мой компьютер.

ActiveX‑объекты

Для определения тех значков ActiveX‑объектов, которые будут отображаться на Рабочем столе, в папках Панель управления и Мой компьютер, применяются следующие ветви реестра.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace – определяет те из ActiveX‑объектов, которые будут отображаться на Рабочем столе. Раздел NameSpace содержит набор дочерних подразделов, названных в честь CLSID‑номера ActiveX‑объекта, который должен отображаться на Рабочем столе. Например, чтобы отобразить на Рабочем столе значок, вызывающий диалог Запуск программы, необходимо создать в данном разделе подраздел {2559a1f3‑21d7‑11d4‑bdaf‑00c04f60b9f0}. Результат можно видеть на рис. 5.3. 

Рис. 5.3. Отображение на Рабочем столе значка Запуск программы

Раздел Name Space можно создать в аналогичной ветви корневого раздела HKEY_LOCAL_MACHINE. В этом случае ActiveX‑объект будет отображаться на Рабочем столе всех пользователей компьютера, а не только данного пользователя.

ВНИМАНИЕ

Данная ветвь реестра, кроме значков ActiveX‑объектов, которые будут отображаться на Рабочем столе, включает в себя еще и определение CLSID‑номера {1f4de370‑d627‑11d1‑ba4f‑00a0c91eedba}. He удаляйте определение этого номера, так как оно необходимо для корректной работы с функцией поиска и его удаление сделает невозможным использование диалога, вызываемого комбинацией клавиш Windows+F.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\HideDesktopIcons – если предыдущая ветвь реестра определяла те из значков ActiveX‑объектов, которые будут отображаться на Рабочем столе, то эта ветвь устанавливает совершенно противоположную возможность – она указывает на те ActiveX‑объекты, которые не будут отображаться на Рабочем столе. При этом можно указать отдельные наборы скрываемых значков в зависимости от типа меню Пуск, используемого в данный момент, ведь данная ветвь хранит два дочерних раздела – ClassicStartMenu и NewStartPanel. Если вы определите CLSID‑номера в разделе ClassicStartMenu, то данные значки ActiveX‑объектов не будут отображаться на Рабочем столе при использовании классического меню Пуск. Если же вы определите CLSID‑номера в разделе NewStartPanel, то данные значки ActiveX‑объектов не будут отображаться на Рабочем столе при использовании нового меню Пуск.

Чтобы определить CLSID‑номер скрываемого ActiveX‑объекта, достаточно в необходимом разделе создать параметр DWORD‑типа, названный в честь этого CLSID‑номера. Значение параметра должно быть равно 1 (если значение равно 0, то значок ActiveX‑объекта будет отображаться). Например, чтобы скрыть значок диалога Запуск программы, который был недавно добавлен, необходимо создать в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu (если используется классическое меню Пуск) параметр DWORD‑типа {2559a1f3‑21d7‑11d4‑bdaf‑00c04f60b9f0}, значение которого должно быть равно 1.

Данную ветвь можно использовать и в корневом разделе HKEY_LOCAL_MACHINE.

ПРИМЕЧАНИЕ

Существует один интересный CLSID‑номер ActiveX‑объекта, описания которого вы не встретите в ветви реестра HKEY_CLASSES_ROOT\CLSID. Это CLSID‑номер {00000000‑0000‑0000‑0000‑000000000000}. Если запретить отображение данного CLSID‑номера на Рабочем столе с помощью вышеописанной ветви реестра, то после перезагрузки оболочки на Рабочем столе останутся только значки Корзина и Мой компьютер – остальные ActiveX‑объекты, папки и файлы Рабочего стола будут скрыты.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace – определяет список CLSID‑номеров ActiveX‑объектов, которые будут отображаться в папке Мой компьютер. Формат данной ветви полностью аналогичен формату описанной выше ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace. Если использовать такую ветвь реестра, расположенную в корневом разделе HKEY_LOCAL_MACHINE, то определяемый ею значок будет отображен для всех пользователей системы.

ПРИМЕЧАНИЕ

Но между приведенными ветвями реестра для различных корневых разделов существует небольшое отличие – ветвь реестра из корневого раздела HKEY_LOCAL_MACHINE также может хранить раздел DelegateFolders, содержимым которого является подраздел {59031a47‑3f7244a7‑89c5‑5595fe6b30ee}. Этот подраздел определяет общие папки, отображаемые в папке Мой компьютер, и если удалить или просто переименовать раздел DelegateFolders, то общие папки в папке Мой компьютер отображаться не будут.

Например, можно попробовать самостоятельно добавить в папку Мой компьютер значок ActiveX‑объекта. На этот раз нужно создать свой собственный ActiveX‑объект.

Как уже говорилось ранее, для создания уникального CLSID‑номера ActiveX‑объекта применяется программа guidgen. exe, входящая в стандартную поставку таких компиляторов, как Microsoft Visual Studio. NET, а также Microsoft Visual C++. После запуска данной программы перед вами появится диалог, в котором требуется определить, какой именно уникальный идентификатор нужно создать. Чтобы создать CLSID‑номер, необходимо установить переключатель 4. Registry Format. После выбора типа уникального идентификатора нужно выбрать сам созданный идентификатор – нажимайте кнопку Next GUID до тех пор, пока программа не создаст идентификатор, который вам понравится. После этого достаточно нажать кнопку Сору, чтобы поместить этот идентификатор в буфер обмена.

Все, уникальный CLSID‑номер у вас уже есть. Например, таким номером является {23D0F57C‑5E2C‑4fb2‑BE50‑B27DBD7EFB76}, созданный с помощью программы guidgen. exe. После создания CLSID‑номера нужно зарегистрировать его в системе. Для этого используется ветвь системного реестра HKEY_CLASSES_ROOT\CLSID, формат содержимого которой был описан в предыдущей главе. Создайте в этой ветви дочерний раздел, названный в честь CLSID‑номера, созданного программой guidgen. Теперь необходимо назвать значок ActiveX‑объекта – для этого используется параметр (По умолчанию) созданного раздела. После этого нужно зарегистрировать для созданного ActiveX‑объекта значок, с этой целью применяется параметр DefaultIcon дочернего раздела ветви созданного CLSID‑номера. После создания значка нужно скрыть все стандартные команды его контекстного меню – для этого присвойте DWORD‑параметру Attributes значение 0. Он должен находиться в разделе ShellFolder ветви созданного CLSID‑номера. И наконец, можно создавать содержимое пользовательского контекстного меню – для этого используется раздел shell ветви CLSID‑номера. Создайте в нем необходимые глаголы, а в них – подраздел command, параметр (По умолчанию) которого и будет определять команду, вызываемую при выборе из контекстного меню вашего значка соответствующего действия.

Теперь у вас есть не только уникальный CLSID‑номер, но и свой собственный ActiveX‑объект. Осталось только создать подраздел {23D0F57C‑5E2C‑4fb2‑BE50‑B27DBD7EFB76} в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace и смотреть на то, что получилось (рис. 5.4).

Рис. 5.4. Создание своего ActiveX‑объекта и расположение его в папке Мой компьютер

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\HideMyComputerIcons – скрывает значки из папки Мой компьютер. Ее формат аналогичен формату уже описанной ветви системного реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\HideDesktopIcons, поэтому рассматривать ее мы не будем. Эту ветвь можно использовать и в корневом разделе HKEY_LOCAL_MACHINE.

Например, чтобы скрыть только что созданный значок ActiveX‑объекта из паки Мой компьютер, необходимо создать DWORD‑параметр {23D0F57C‑5E2C‑4fb2‑BE50‑B27DBD7EFB76} и присвоить ему значение, равное 1. Создавать его нужно в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideMyComputerIcons.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace – содержит ссылки на те ActiveX‑объекты, значки которых будут отображаться в папке Панель управления. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX‑объектов.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NetworkNeighborhood\NameSpace – определяет те ActiveX‑объекты, значки которых будут отображаться в папке Сетевое окружение. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX‑объектов.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace – определяет те ActiveX‑объекты, значки которых будут отображаться в папке Удаленные компьютеры. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX‑объектов.

По умолчанию в этой ветви реестра присутствуют только ссылки на ActiveX‑объекты Принтеры и Назначенные задания. Если вы как администратор не хотите, чтобы эти ActiveX‑объекты отображались в папке удаленного компьютера, то можно их удалить.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\NonEnum – раздел более категоричен, чем все рассмотренные ранее, – он определяет те из ActiveX‑объектов, которые вообще не будут отображаться в оболочке пользователей (или конкретного пользователя, если применяется ветвь из корневого раздела HKEY_CURRENT_USER). Все ActiveX‑объекты, описанные в этой ветви, не будут применяться при построении пользовательского интерфейса.

Чтобы запретить использование какого‑либо ActiveX‑объекта, достаточно создать в данной ветви реестра параметр DWORD‑типа, названный в честь CLSID‑номера скрываемого ActiveX‑объекта, и присвоить ему значение, равное 1.

Хотелось бы сказать еще об одной недокументированной возможности скрытия ActiveX‑объекта из всех мест оболочки, где он используется, – о параметре Attributes, находящемся в подразделе ShellFolder раздела скрываемого нами ActiveX‑объекта. Содержимое данного параметра уже было описано в предыдущей главе, но не упоминалось об этой возможности.

Итак, чтобы скрыть значок ActiveX‑объекта, достаточно его параметру Attributes присвоить битовую маску 0x00100000.

Скрытие CPL‑файлов

Кроме скрытия ActiveX‑объектов, существует еще и возможность скрытия CPL‑файлов из содержимого окна Панель управления. Для этого могут применяться две стандартные ветви реестра Windows, первой из которых является ветвь реестра HKEY_CURRENT_USER\Control Panel\don't load. Она может хранить список параметров строкового типа, названных в честь CPL‑файлов, значения которых не важны. Все CPL‑файлы, чьи имена описаны в качестве параметров ветви HKEY_CURRENT_USER\Control Panel\don't load, не будут отображаться в Панели управления. Например, чтобы скрыть апплет Мышь, необходимо в данной ветви реестра создать параметр строкового типа main. cpl (будет также скрыт апплет Клавиатура).

Предыдущая ветвь имеет один существенный недостаток применения – пользователь может удалить все созданные вами параметры. Если же вы не хотите, чтобы он мог это сделать, то нужно запретить полный доступ к данной ветви реестра, оставив только доступ на чтение. Можно просто воспользоваться другой ветвью реестра – HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\don't load. Она имеет такой же формат, что и предыдущая ветвь, но скрывает апплеты Панели управления для всех пользователей системы.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Всего комментариев: 0
Имя *:
Email *:
Код *: