Недокументированные и малоизвестные возможности Windows XP - Роман Клименко
Шрифт:
Интервал:
Закладка:
Последний трюк относится к цвету отображения названия определенного ActiveX-объекта. Все дело в том, что в Windows существует возможность указать операционной системе, что название конкретного ActiveX-объекта будет отображаться синим цветом (или цветом, который будет определен вышеописанным параметром AltEncryptionColor). Для этого используется параметр Attributes, расположенный в разделе ShellFolder ветви реестра, определяющей необходимый ActiveX-объект. В предыдущей главе уже рассматривался этот параметр, но еще не упоминалось о такой возможности.
Итак, чтобы отобразить название ActiveX-объекта, расположенное под его значком, синим цветом, достаточно установить данному параметру DWORD-типа битовую маску 0x04000000. Например, чтобы изменить цвет названия значка Панель задач и меню Пуск, расположенного в папке Панель управления, необходимо отредактировать параметр Attributes из ветви реестра HKEY_CLASSES_ROOTclsid{0DF44EAA-FF21-4412-828E-260A8728E7F1}ShellFolder. К сожалению, на черно-белом изображении изменение цвета практически незаметно, поэтому рисунок не приводится.
Можно также заставить систему отобразить название ActiveX-объекта зеленым цветом (или цветом, который будет определен вышеописанным параметром AltColor). Для этого нужно присвоить параметру Attributes битовую маску 0x00002000. Следует только учесть, что в этом случае битовая маска 0x04000000 должна быть сброшена.
Последняя возможность битовой маски Attributes, которая будет рассмотрена, — эффект полупрозрачности значка ActiveX-объекта. Чтобы добиться такого эффекта, нужно присвоить параметру Attributes битовую маску 0x00008000.
ПРИМЕЧАНИЕ
Данный эффект нельзя применить к значку папки Мой компьютер. Существует также одна особенность его применения для значка Корзины — при входе пользователя в систему полупрозрачность для него не применяется, но как только пользователь наведет на значок указатель мыши (и некоторое время подержит на нем), она станет полупрозрачной.
Расположение
Кроме изменения значков различных файлов Windows, существует возможность управления расположением значков на Рабочем столе. Само расположение значков описано в разделе HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerStreamsDesktop, поэтому если вы уже идеально настроили свой Рабочий стол, то можно запретить полный доступ к этому разделу системе, своей учетной записи и группе, к которой принадлежит ваша учетная запись, оставив только доступ на чтение.
Можно также заставить значок Корзины при следующем входе в систему отображаться в правом нижнем углу. Для этого нужно присвоить DWORD-параметру AdjustRecycleBinPosition значение, равное 1 (рис. 5.2). Он расположен в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerScreenResFixer. После следующего входа в систему Windows, независимо от настроек раздела HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerStreamsDesktop, отобразит значок Корзины в правом нижнем углу. После этого система изменит значение параметра AdjustRecycleBinPosition на 2 (то есть разрешит изменение расположения значка Корзины). Если же вы не хотите, чтобы расположение этого значка можно было изменить, то следует также запретить полный доступ и к этой ветви реестра, оставив только доступ на чтение.
Рис. 5.2. Расположение значка Корзины
ПРИМЕЧАНИЕ
Есть возможность определить порядок расположения ActiveX-объектов на Рабочем столе. Для этого применяется DWORD-параметр SortOrderIndex, расположенный в разделе ActiveX-объекта ветви реестра HKEY_CLASSES_ROOTclsid. Например, если значение этого параметра для значка Корзины будет равно 0x00000060, для значка папки Мой компьютер — 0x00000054, а для значка Мои документы — 0x00000048, то на первом месте Рабочего стола будет отображаться Корзина, на втором — Мой компьютер, а на третьем — Мои документы.
Отображение
Еще одной возможностью, которую предоставляет пользователям Windows, является определение тех значков ActiveX-объектов, которые будут отображаться на Рабочем столе, в папках Панель управления и Мой компьютер.
ActiveX-объекты
Для определения тех значков ActiveX-объектов, которые будут отображаться на Рабочем столе, в папках Панель управления и Мой компьютер, применяются следующие ветви реестра.
■ HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace — определяет те из 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_USERSoftwareMicrosoftWindowsCurrentVersion ExplorerHideDesktopIcons — если предыдущая ветвь реестра определяла те из значков ActiveX-объектов, которые будут отображаться на Рабочем столе, то эта ветвь устанавливает совершенно противоположную возможность — она указывает на те ActiveX-объекты, которые не будут отображаться на Рабочем столе. При этом можно указать отдельные наборы скрываемых значков в зависимости от типа меню Пуск, используемого в данный момент, ведь данная ветвь хранит два дочерних раздела — ClassicStartMenu и NewStartPanel. Если вы определите CLSID-номера в разделе ClassicStartMenu, то данные значки ActiveX-объектов не будут отображаться на Рабочем столе при использовании классического меню Пуск. Если же вы определите CLSID-номера в разделе NewStartPanel, то данные значки ActiveX-объектов не будут отображаться на Рабочем столе при использовании нового меню Пуск.
Чтобы определить CLSID-номер скрываемого ActiveX-объекта, достаточно в необходимом разделе создать параметр DWORD-типа, названный в честь этого CLSID-номера. Значение параметра должно быть равно 1 (если значение равно 0, то значок ActiveX-объекта будет отображаться). Например, чтобы скрыть значок диалога Запуск программы, который был недавно добавлен, необходимо создать в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsClassicStartMenu (если используется классическое меню Пуск) параметр DWORD-типа {2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}, значение которого должно быть равно 1.
Данную ветвь можно использовать и в корневом разделе HKEY_LOCAL_MACHINE.
ПРИМЕЧАНИЕ
Существует один интересный CLSID-номер ActiveX-объекта, описания которого вы не встретите в ветви реестра HKEY_CLASSES_ROOTCLSID. Это CLSID-номер {00000000-0000-0000-0000-000000000000}. Если запретить отображение данного CLSID-номера на Рабочем столе с помощью вышеописанной ветви реестра, то после перезагрузки оболочки на Рабочем столе останутся только значки Корзина и Мой компьютер — остальные ActiveX-объекты, папки и файлы Рабочего стола будут скрыты.
■ HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace — определяет список CLSID-номеров ActiveX-объектов, которые будут отображаться в папке Мой компьютер. Формат данной ветви полностью аналогичен формату описанной выше ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace. Если использовать такую ветвь реестра, расположенную в корневом разделе 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 до тех пор, пока программа не создаст идентификатор, который вам понравится. После этого достаточно нажать кнопку Сору, чтобы поместить этот идентификатор в буфер обмена.