Читаем без скачивания Недокументированные и малоизвестные возможности Windows XP - Роман Клименко
Шрифт:
Интервал:
Закладка:
Например, можно попробовать самостоятельно добавить в папку Мой компьютер значок 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_ROOTCLSID, формат содержимого которой был описан в предыдущей главе. Создайте в этой ветви дочерний раздел, названный в честь CLSID-номера, созданного программой guidgen. Теперь необходимо назвать значок ActiveX-объекта — для этого используется параметр (По умолчанию) созданного раздела. После этого нужно зарегистрировать для созданного ActiveX-объекта значок, с этой целью применяется параметр DefaultIcon дочернего раздела ветви созданного CLSID-номера. После создания значка нужно скрыть все стандартные команды его контекстного меню — для этого присвойте DWORD-параметру Attributes значение 0. Он должен находиться в разделе ShellFolder ветви созданного CLSID-номера. И наконец, можно создавать содержимое пользовательского контекстного меню — для этого используется раздел shell ветви CLSID-номера. Создайте в нем необходимые глаголы, а в них — подраздел command, параметр (По умолчанию) которого и будет определять команду, вызываемую при выборе из контекстного меню вашего значка соответствующего действия.
Теперь у вас есть не только уникальный CLSID-номер, но и свой собственный ActiveX-объект. Осталось только создать подраздел {23D0F57C-5E2C-4fb2-BE50-B27DBD7EFB76} в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace и смотреть на то, что получилось (рис. 5.4).
Рис. 5.4. Создание своего ActiveX-объекта и расположение его в папке Мой компьютер
■ HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion ExplorerHideMyComputerIcons — скрывает значки из папки Мой компьютер. Ее формат аналогичен формату уже описанной ветви системного реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion ExplorerHideDesktopIcons, поэтому рассматривать ее мы не будем. Эту ветвь можно использовать и в корневом разделе HKEY_LOCAL_MACHINE.
Например, чтобы скрыть только что созданный значок ActiveX-объекта из паки Мой компьютер, необходимо создать DWORD-параметр {23D0F57C-5E2C-4fb2-BE50-B27DBD7EFB76} и присвоить ему значение, равное 1. Создавать его нужно в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerHideMyComputerIcons.
■ HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerControlPanelNameSpace — содержит ссылки на те ActiveX-объекты, значки которых будут отображаться в папке Панель управления. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.
■ HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerNetworkNeighborhoodNameSpace — определяет те ActiveX-объекты, значки которых будут отображаться в папке Сетевое окружение. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.
■ HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerRemoteComputerNameSpace — определяет те ActiveX-объекты, значки которых будут отображаться в папке Удаленные компьютеры. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.
По умолчанию в этой ветви реестра присутствуют только ссылки на ActiveX-объекты Принтеры и Назначенные задания. Если вы как администратор не хотите, чтобы эти ActiveX-объекты отображались в папке удаленного компьютера, то можно их удалить.
■ HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesNonEnum — раздел более категоричен, чем все рассмотренные ранее, — он определяет те из ActiveX-объектов, которые вообще не будут отображаться в оболочке пользователей (или конкретного пользователя, если применяется ветвь из корневого раздела HKEY_CURRENT_USER). Все ActiveX-объекты, описанные в этой ветви, не будут применяться при построении пользовательского интерфейса.
Чтобы запретить использование какого-либо ActiveX-объекта, достаточно создать в данной ветви реестра параметр DWORD-типа, названный в честь CLSID-номера скрываемого ActiveX-объекта, и присвоить ему значение, равное 1.
Хотелось бы сказать еще об одной недокументированной возможности скрытия ActiveX-объекта из всех мест оболочки, где он используется, — о параметре Attributes, находящемся в подразделе ShellFolder раздела скрываемого нами ActiveX-объекта. Содержимое данного параметра уже было описано в предыдущей главе, но не упоминалось об этой возможности.
Итак, чтобы скрыть значок ActiveX-объекта, достаточно его параметру Attributes присвоить битовую маску 0x00100000.
Скрытие CPL-файлов
Кроме скрытия ActiveX-объектов, существует еще и возможность скрытия CPL-файлов из содержимого окна Панель управления. Для этого могут применяться две стандартные ветви реестра Windows, первой из которых является ветвь реестра HKEY_CURRENT_USERControl Paneldon't load. Она может хранить список параметров строкового типа, названных в честь CPL-файлов, значения которых не важны. Все CPL-файлы, чьи имена описаны в качестве параметров ветви HKEY_CURRENT_USERControl Paneldon't load, не будут отображаться в Панели управления. Например, чтобы скрыть апплет Мышь, необходимо в данной ветви реестра создать параметр строкового типа main.cpl (будет также скрыт апплет Клавиатура).
Предыдущая ветвь имеет один существенный недостаток применения — пользователь может удалить все созданные вами параметры. Если же вы не хотите, чтобы он мог это сделать, то нужно запретить полный доступ к данной ветви реестра, оставив только доступ на чтение. Можно просто воспользоваться другой ветвью реестра — HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionControl Paneldon't load. Она имеет такой же формат, что и предыдущая ветвь, но скрывает апплеты Панели управления для всех пользователей системы.
Другие возможности
Теперь рассмотрим другие возможности реестра, которые можно использовать в своей системе.
■ Чтобы при создании ярлыка файла к его названию не добавлялся префикс Ярлык для, необходимо присвоить параметру REG_BINARY-типа link значение 0. Он расположен в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer (можно также использовать корневой раздел HKEY_LOCAL_MACHINE).
■ Еще одной возможностью, которую предоставляет пользователю Windows, является определение области вокруг значка, в пределе которой его перемещение не будет считаться перемещением как таковым — значок вернется на свое прежнее место (довольно часто при быстром двойном щелчке на значке можно его случайно переместить, что может испортить весь стиль оформления Рабочего стола). Для этого используются два параметра строкового типа, расположенных в ветви реестра HKEY_CURRENT_USERControl PanelDesktop. Первый из этих параметров называется DragHeight и определяет расстояние в пикселах, в пределах которого перемещение значка или окна по вертикали не приводит к перетаскиванию. Например, если значение этого параметра равно 35, то при перемещении значка на 35 пикселов вверх/вниз он останется на своем прежнем месте. Второй параметр называется DragWidth — определяет расстояние в пикселах, в пределах которого перемещение значка или окна по горизонтали не приводит к перетаскиванию.
Проводник
Стандартные окна операционной системы являются еще одним элементом оболочки Windows, нестандартные настройки которого могут быть интересны. Окна имеют не много параметров настройки, доступ к которым нельзя получить из пользовательских диалогов, но все-таки эти параметры стоят того, чтобы о них написать.
Оформление
В стандартной поставке операционная система Windows имеет довольно строгий стиль оформления. Это можно заметить уже при первом взгляде на панель инструментов и меню окон Проводника. Уже стало стандартом то, как данные элементы окна выглядят, и кажется, что любой другой стиль оформления данных элементов будет неправильным и излишним. Но так ли это? Попробуйте изменить элементы оформления окна, а через некоторое время решите, оставить ли эти изменения в системе. Для себя автор данной книги уже решил — обязательно оставить, так как с некоторых пор стандартный стиль оформления окон ему кажется просто ужасным.