Тонкости реестра Windows Vista. Трюки и эффекты
Шрифт:
Отображение нестандартных апплетов. Если апплет не расположен в каталоге %systemroot%\system32, то он не будет автоматически отображаться в папке Панель управления. Для его отображения нужно воспользоваться ветвью реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls.
В данной ветви нужно создать параметр расширенного строкового типа, название которого может быть любым. Значение данного параметра должно содержать путь к апплету и его имя.
Скрытие и отображение ActiveX.объектов. Кроме апплетов в папке Панель управления могут располагаться значки ActiveX-объектов. Способ их отображения является и способом их сокрытия.
Чтобы добавить в папку Панель управления значок (при использовании вида по категориям данный значок будет добавлен в категорию Дополнительные параметры), реализуемый с помощью ActiveX-объекта, нужно воспользоваться ветвью реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace.
В данной ветви достаточно создать подраздел, название которого соответствует CLSID-номеру ActiveX-объекта.
Если же нужно удалить значок, реализуемый с помощью ActiveX-объекта, из папки Панель управления,
Внимание!
После удаления CLSID-номера некоторых ActiveX-объектов из данной ветви реестра больше нельзя будет запускать мастер, который вызывает данный ActiveX-объект.
Например, после удаления CLSID-номера {ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} нельзя будет запускать мастер Персонализация.
В качестве примера ниже представлен текст REG-файла, который создает в папке Панель управления два значка, с помощью контекстного меню которых можно открыть все стандартные апплеты операционной системы.
REGEDIT4
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}]
@="Апплеты: Оформление"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-27"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell]
@="2"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\1]
@="Соседние пользователи"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\1\command]
@="rundll32.exe shell32.dll, Control_RunDLL Collab.cpl"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\2]
@="Свойства обозревателя"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\2\command]
@="rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\3]
@="Язык и региональные стандарты"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\3\command]
@="rundll32.exe shell32.dll, Control_RunDLL Intl.cpl"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\5]
@="Дата и время"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\5\command]
@="rundll32.exe shell32.dll, Control_RunDLL Timedate.cpl"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\6]
@="Центр безопасности"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\6\command]
@="rundll32.exe shell32.dll, Control_RunDLL Wscui.cpl"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\7]
@="Автономные файлы"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\7\command]
@="rundll32.exe shell32.dll, Control_RunDLL cscui.dll"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\8]
@="Параметры индексирования"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\8\command]
@="rundll32.exe shell32.dll, Control_RunDLL srchadmin.dll"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\9]
@="Сохранение имен пользователей и паролей"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\9\command]
@="rundll32.exe shell32.dll, Control_RunDLL keymgr.dll"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\10]
@="Языки и службы текстового ввода"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\10\command]
@="rundl l32.exe shell32.dll, Control_RunDLL input.dll"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\11]
@="Программа сетевого клиента SQL"
[HKEY_CLASSES_ROOT\CLSID\{CA81893E-E643-4ec9-BE7F-39D759BC0773}\shell\11\command]
@="rundll32.exe shell32.dll, Control_RunDLL cliconfg.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ControlPanel\NameSpace\{CA81893E-E643-4ec9-BE7F-39D759BC0773}]
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}]
@="Апплеты: Оборудование"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-28"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell]
@="2"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\1]
@="Параметры дисплея"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\1\command]
@="rundll32.exe shell32.dll, Control_RunDLL Desk.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\2]
@="Игровые устройства"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\2\command]
@="rundll32.exe shell32.dll, Control_RunDLL Joy.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\3]
@="Мышь"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\3\command]
@="rundll32.exe shell32.dll, Control_RunDLL Main.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\4]
@="Звук"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\4\command]
@="rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\5]
@="Сетевые
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\5\command]
@="rundll32.exe shell32.dll, Control_RunDLL Ncpa.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\6]
@="Электропитание"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\6\command]
@="rundll32.exe shell32.dll, Control_RunDLL Powercfg.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\7]
@="Перо и устройства ввода"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\7\command]
@="rundll32.exe shell32.dll, Control_RunDLL TabletPC.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\8]
@="Телефон и модем"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\8\command]
@="rundll32.exe shell32.dll, Control_RunDLL Telephon.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\9]
@="Windows Mobile"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\9\command]
@="rundll32.exe shell32.dll, Control_RunDLL wmdConn.cpl"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\10]
@="Безопасное извлечение устройства"
[HKEY_CLASSES_ROOT\CLSID\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}\shell\10\command]
@="rundll32.exe shell32.dll, Control_RunDLL hotplug.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ControlPanel\NameSpace\{ED96A641-C127-4e8e-99F0-E89FBA17AB99}]
Механизмы скрытия апплетов при использовании вида по категориям ничем не отличаются от механизмов, используемых при классическом виде папки Панель управления. Все они были описаны выше.
Отображение апплетов. Способ отображения апплетов (расположенных как в каталоге %systemroot%\system32, так и в других каталогах) при использовании вида по категориям отличается от способа, описанного выше.
Для добавления апплета в папку Панель управления при использовании вида по категориям необходимо работать с ветвью реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Extended Properties\{305CA226-D286-468e-B848-2B2E8E697B74} 2.
Для этого в данной ветви нужно создать параметр REG_DWORD-типа, название которого соответствует пути к апплету и его имени. Значение параметра определяет категорию папки Панель управления, в которой будет расположен указанный вами апплет. Возможны следующие значения параметров данной ветви реестра.
• 0х00000001 – категория Оформление и персонализация.
• 0х00000002 – Оборудование и звук.
• 0х00000003 – Сеть и Интернет.
• 0х00000004 – Оборудование и звук.
• 0х00000005 – Система и ее обслуживание.
• 0х00000006 – Часы, язык и регион.
• 0х00000007 – Специальные возможности.
• 0х00000008 – Программы.
• 0х00000009 – Учетные записи пользователей и семейная безопасность.
• 0х0000000a – Безопасность.
• 0х0000000b – категория Мобильные ПК. Она отображается только на ноутбуках. Чтобы отобразить данную категорию на обычном компьютере, присвойте параметру REG_DWORD-типа ShowCategoryMobilePC, расположенному в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ControlPanel, значение 1.
• 0хFFFFFFFF – не отображать данный апплет.
Отображение ActiveX.объектов. При использовании вида по категориям изменяется и механизм отображения значков, реализованных с помощью ActiveX-объектов.
Чтобы добавить нужный вам значок в папку Панель управления при использовании вида по категориям, необходимо создать параметр строкового типа System.ControlPanel.Category в ветви реестра соответствующего ActiveX-объекта (то есть в ветви вида HKEY_CLASSES_ROOT\CLSID\{CLSID-номер ActiveX-объекта}). Значение данного параметра определяет одну или несколько категорий, в которых будет отображаться соответствующий значок (возможные значения данного параметра были описаны выше, при описании добавления к папке Панель управления апплетов).
Например, чтобы отобразить ActiveX-объект в категориях Оборудование и звук, Система и ее обслуживание и Мобильные ПК, нужно данному параметру присвоить значение 2,5,11.
Администрирование
В процессе эксплуатации системы иногда возникает необходимость заблокировать доступ пользователей к функциям администрирования системы. Выше мы уже рассматривали один из вариантов управления отображением команды Администрирование (см. разд. 2.4, подразд. «Администрирование»). В этом подразделе мы научимся управлять отображением данной команды в составе подменю Панель управления (имеется в виду случай, когда пункт Панель управления в составе меню кнопки Пуск отображается в виде подменю).
Итак, по умолчанию команда Администрирование входит в состав подменю Панель управления.
Для удаления пункта Администрирование из подменю Панель управления следует в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace переименовать подраздел {D20EA4E1-3957-11d2-A40B-0C5020524153}, поставив перед ним знак «минус».
Соответствующий REG-файл будет выглядеть следующим образом (расположение файла на компакт-диске – Файлы реестра\Интерфейс\InterAdmin.reg):