Тонкости реестра Windows Vista. Трюки и эффекты - Роман Клименко 10 стр.


2.5. Панель управления

Как известно, Панель управления является одним из важнейших элементов операционной системы. Доступ к ней осуществляется с помощью команды Пуск → Панель управления, если настройками реестра не предусмотрено иное. В этом разделе мы рассмотрим, каким образом в реестре можно изменять режимы функционирования Панели управления и ее элементов.

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

Следует заметить, что использование вида по категориям в вашей операционной системе может быть запрещено администратором. Это делается довольно просто. Достаточно параметру REG_DWORD-типа ForceClassicControlPanel присвоить значение 1. Данный параметр расположен в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.

Ниже приведен текст REG-файла, в котором параметру ForceClassicControlPanel присваивается значение 1 (расположение файла на компакт-диске – Файлы реестра\Интерфейс\InterCPKHide.reg).

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

"ForceClassicControlPanel"=dword:00000001

Скрытие и отображение

В папке Панель управления могут находиться специальные апплеты, а также определенные ActiveX-объекты. Если апплет хранится в каталоге %systemroot%\system32, то он автоматически помещается в папку Панель управления (при использовании классического вида данной папки). В противном случае апплет нужно добавлять вручную.

О способах добавления и удаления апплетов и ActiveX-объектов из папки Панель управления и пойдет речь в этом подразделе.

Классический вид

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

Скрытие апплетов. Большинство значков, расположенных в Панели управления, представляют собой апплеты (специальные программы, отображающие различные окна и мастера, и работающие с помощью механизмов папки Панель управления).

Существует несколько способов скрытия апплетов из папки.

Первый способ прост и ненадежен. Он скрывает выбранные вами файлы с помощью ветви, доступ к которой может получить и сам пользователь. Если вы специально не запретите доступ к этой ветви реестра для пользователя, то он сможет изменить все ваши настройки. Этот способ основан на ветви реестра HKEY_CURRENT_USER\Control Panel\don't load, которая может содержать строковые параметры с именами, соответствующими названиям CPL-файлов. Если значения этих параметров равны no, то определенные CPL-файлы будут скрыты. Например, чтобы скрыть с Панели управления значок Мышь, нужно создать в подразделе don't load строковый параметр с именем main.cpl (список соответствий названий значков названиям их CPL-файлов смотрите ниже) и присвоить ему значение no.

Чтобы отобразить скрытые CPL-файлы, достаточно просто удалить их из ветви HKEY_CURRENT_USER\Control Panel\don't load.

Примечание

Скрыть CPL-файлы можно также с помощью строковых параметров ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\don't load.

Второй и третий способы похожи по применению, но противоположны по получаемым результатам. Первый способ скрывает с Панели управления неугодные вам CPL-файлы. Кроме того, он запрещают редактировать пользователю ветви реестра, в которых реализуются CPL-файлы. Второй способ перечисляет все CPL-файлы, которые будут скрыты от пользователя, в то время как третий перечисляет все отображаемые для пользователя CPL-файлы.

Чтобы воспользоваться вторым способом, то есть перечислить все запрещенные для пользователя CPL-файлы, нужно создать REG_DWORD-параметр DisallowCpl в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer и присвоить ему значение 1. Кроме того, в этой же ветви нужно создать подраздел DisallowCpl. Он и будет содержать список всех запрещенных для пользователя CPL-файлов в виде строковых параметров, названия которых являются числами от 1 и до бесконечности. Значения этих параметров должны быть равны именам CPL-файлов (то есть для запрещения значка Мышь нужно создать параметр с именем 1 и присвоить ему значение main.cpl).

Если вы хотите воспользоваться третьим способом, то есть перечислить все разрешенные CPL-файлы (соответственно, пользователю будет запрещен доступ к CPL-файлам, не вошедшим в список), нужно в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer создать REG_DWORD-параметр RestrictCpl и присвоить ему значение 1. Кроме того, в данной ветви реестра нужно также создать подраздел RestrictCpl, который должен хранить список строковых параметров, аналогичный списку из второго способа.

Ниже приведен текст REG-файла, который скрывает все стандартные апплеты из папки Панель управления (расположение файла на компакт-диске – Файлы реестра\Интерфейс\HideAplet.reg). Данный REG-файл может использоваться в сочетании с другим REG-файлом, описанным ниже и добавляющим в папку несколько ActiveX-объектов, с помощью контекстного меню которых можно получить доступ ко всем стандартным апплетам.

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\

Control Panel\don't load]

"infocardcpl.cpl"=""

"cscui.dll"=""

"srchadmin.dll"=""

"hotplug.dll"=""

"keymgr.dll"=""

"input.dll"=""

"cliconfg.dll"=""

"Collab.cpl"=""

"appwiz.cpl"=""

"desk.cpl"=""

"Firewall.cpl"=""

"hdwwiz.cpl"=""

"Inetcpl.cpl"=""

"Intl.cpl"=""

"Joy.cpl"=""

"Main.cpl"=""

"Mmsys.cpl"=""

"ncpa.cpl"=""

"powercfg.cpl"=""

"Sapi.cpl"=""

"sysdm.cpl"=""

"TabletPC.cpl"=""

"Telephon.cpl"=""

"Timedate.cpl"=""

"wmdConn.cpl"=""

"Wscui.cpl"=""

Отображение нестандартных апплетов. Если апплет не расположен в каталоге %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-номера.

Внимание!

После удаления 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):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\-{D20EA4E1-3957-11d2-A40B-0C5020524153}]

@="Администрирование"

Назад Дальше