Всё о Панели управления Windows 7: состав, функционирование, тонкая настройка

regist

гоняюсь за туманом
Ассоциация VN/VIP
VIP
Разработчик
Сообщения
14,886
Реакции
6,796
Мужайся, читатель - тебя ждет технический пост, долгий и унылый. Из него ты узнаешь, как выглядит Панель управления изнутри, какие элементы в неё входят, научишься размещать их в других папках, добавлять скрытые во имя светлого будущего элементы, такие как "Сетевые подключения", на их законное место, и много другое. Я поделюсь с тобой утилитой CSLID Dump, которая покажет список доступных виртуальных папок и ActiveX-приложений, расскажет об их локализованных именах, CLSID-ах, и даже даст их попробовать.

Дочитавшему до конца - покажу фотку котёнка.

Папка Панель управления не является папкой как таковой, в привычном значении термина, обычно применяемого к файловой системе. На деле это ActiveX-объект, создающий виртуальную папку со значками для открытия большинства стандартных конфигурационных диалогов и утилит операционной системы. Microsoft Windows, начиная с Windows 95, поддерживали и поддерживают два вида элементов, отображаемых в этой виртуальной папке: CPL-апплеты и ActiveX-объекты.

Аборигены Панели управления - CPL-апплеты
Впервые они в составе панели управления появились в Windows 95, в которой подавляющее большинство апплетов были именно CPL-апплеты. CPL-апплетом обычно является файл с расширением *.cpl, который по сути своей является обычным DLL файлом со специально описанными функциями, позволяющими операционной системе вызывать функционал апплета. Как правило, это диалог настройки чего-либо, каких-то системных параметров. Этот механизм часто используется сторонними разработчиками, например, известный производитель электроники Realtek Semiconductors реализовывал настройку встраиваемых аудиокарт AC 97 именно апплетом cpl, и это далеко не единственный пример. Их физическое расположение нигде строго не регламентировано, но большинство CPL-апплетов находятся в каталоге%systemroot%\system32. Вот их типичный список для Windows 7 Home Basic:

Программы и компоненты: C:\Windows\System32\appwiz.cpl
Параметры Bluetooth: C:\Windows\System32\bthprops.cpl
Соседние пользователи: C:\Windows\System32\collab.cpl
Параметры оформления: C:\Windows\System32\desk.cpl
Брандмауэр: C:\Windows\System32\Firewall.cpl
Установка оборудования: C:\Windows\System32\hdwwiz.cpl
Свойства обозревателя: C:\Windows\System32\inetcpl.cpl
Windows Cardspace: C:\Windows\System32\infocardcpl.cpl
Язык и региональные стандарты: C:\Windows\System32\intl.cpl
Инфракрасные устройства: C:\Windows\System32\irprops.cpl
Джойстик: C:\Windows\System32\joy.cpl
Мышь и клавиатура: C:\Windows\System32\main.cpl
Звуки: C:\Windows\System32\mmsys.cpl
Сетевые подключения: C:\Windows\System32\ncpa.cpl
Параметры электропитания: C:\Windows\System32\powercfg.cpl
Свойства системы: C:\Windows\System32\sysdm.cpl
Параметры планшетного ПК: C:\Windows\System32\TabletPC.cpl
Телефон и модем: C:\Windows\System32\telephon.cpl
Время и дата: C:\Windows\System32\timedate.cpl
Интерфейс центра обновления: C:\Windows\System32\wscui.cpl
Распознавание речи: C:\Windows\System32\Speech\SpeechUX\sapi.cpl

Любой из этих апплетов откроется, если ввести его имя в диалог "Выполнить", например, напечатав timedate.cpl.

ActiveX - элементы: быстрее, удобней, современней
Панель управления современных версий Windows в основной массе своей состоит из элементов ActiveX. Элемент ActiveX- специальный контрол-библиотека, регистрируемая в системе и позволяющая использовать её свойства и методы в других приложениях. В случае с Панелью управления возможности ActiveX-элементов во многом превосходят CPL-апплеты: удобная локализация, контекстное меню, масса возможностей по отображению не только в Панели управления, но и в других папках, как правило, также виртуальных - этого всего CPL-апплеты лишены "из коробки". Механизм реализации Панели управления на ActiveX-элементах - довольно удачное решение, надо отдать должное разработчикам.
Перечень всех ActiveX элементов, доступных в Windows 7, легко получить, проследовав в реестр, в раздел HKEY_CLASSES_ROOT\CLSID. Все ActiveX - апплеты Панели управления перечислены в подразделах-идентификаторах класса (CLSID). Определить потенциальную возможность присутствия ActiveX в Панели управления достаточно легко - у CLSID должен присутствовать подраздел ShellFolder. Вот, например, так выглядит CLSID, идентифицирующий "Учётные записи пользователей":

001.jpg


Говоря о присутствии ActiveX-апплетов в Панели Управления, я неслучайно употребил "потенциальная возможность". Далеко не все апплеты представлены в Панели. Например, нашумевший в свое время "GodMode" и банальный апплет "Сетевые подключения" там отсутствуют. Состав того, что отображается в Панели управления, определяется ключом
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace
Его подразделы представляют собой как раз список ActiveX-апплетов. Вы можете добавлять сюда системные апплеты, по умолчанию не отображаемые в Панели. От вас требуется знание необходимого CLSID. Но и это ещё не всё. Некоторые ActiveX-апплеты так отконфигурированы так (тот же GodMode, например), что даже если вы добавите его в NameSpace, в Панели управления отображаться не будет. Подробнее об этом - на MSDN, и об этом я расскажу ниже. Путешествие по дебрям системного реестра - занятие весьма унылое, поиск нужного CLSID - тем более. Поэтому я только что набросал на коленке утилиту CSLID Dump, позволяющую получить список всех ActiveX-апплетов.

002.jpg


Прошу строго не судить, она кривая и одноразовая. Она позволяет:
  • Выполнить конкретный ActiveX, дабы посмотреть, что он делает.
  • Экспортировать список CLSID в HTML файл.
  • Скопировать выделенный CLSID в буфер обмена Windows
  • Создать на помеченные флажками CLSID ярлыки и поместить их в выбранную папку, например, на рабочий стол. Таким образом можно создать собственную папку-панель управления, о чем я писал выше.
Скачать CLSID Dump
Воспользуемся утилитой для получения CLSID элемента "Сетевые подключения" и добавим его в Панель управления , раз уж я о нем упомянул.
  • Запускаем CLSID Dump, находим нужный элемент.

    003.jpg

  • В реестре, в ключе
    Код:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace
    создайте подраздел с соответствующим идентификатором CLSID, он равен {7007ACC7-3202-11D1-AAD2-00805FC1270E}.
  • Время открыть панель управления.
    004.jpg
Как формируется содержимое Панели управления
Итак, мы выяснили, что для отображения ActiveX-эелементов в Панели управления нужно как минимум присутсвие GUID-а элемента в ключе
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace
Касательно CPL-апплетов, дело обстоит чуть иначе и прозрачней: по умолчанию в Панель управления попадают все CPL-апплеты, находящиеся в папке \Windows\System32. Кроме этого, существуют определенные механизмы, позволяющие:
  • отображать апплеты, находящиеся в каких-либо других папках;
  • позволяющие скрывать CPL-апплет в Панели управления.
Оба представляют собой специальные ключи реестра. Так, чтобы отключить загрузку CPL-апплета в Панели управления (скрыть апплет), необходимо имя его файла прописать в разделе
Код:
HKEY_CURRENT_USER\Control Panel\don't load
либо в разделе
Код:
HKEY_LOCAL_MACHINE \Software\Microsoft\Windows\CurrentVersion\Control Panel\don't load
В любом из разделов достаточно создать параметр строкового типа с именем, соответствующим имени файла апплета.
cpl001.jpg

Очевидно, что HKEY_CURRENT_USER-раздел влияет только на текущего пользователя, в то время как прописанный в HKEY_LOCAL_MACHINE разделе апплет становится невидим всем пользователям компьютера.
Отображение CPL-файла, не находящегося в System32, – задача не намного сложнее. Достаточно прописать путь к CPL файлу в разделе реестра
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls
Записи в нем представляют собой строковые параметры, в качестве имени которых выступают названия апплетов, а в качестве значений – полные пути к CPL файлам:
cpl002.jpg

Категории Панели управления
Одним новшеств, которое принесла с собой любимая пользователями Windows XP, была Панель управления, разбитая на категории. Это несколько смущало привыкшего к классическому списку пользователя, но давало несомненный выигрыш в скорости работы самой Панели. Особо актуальна категорированная Панель управления в 6-ой версии Windows NT (Vista/7), где обилие апплетов способно поразить любого видавшего виды оператора ПК.
Категория, в которой будет размещаться сторонний CPL-апплет, задаётся в реестре в разделе
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Extended Properties\{305CA226-D286-468e-B848-2B2E8E697B74} 2
Здесь должен присутствовать создать параметр DWORD, название которого соответствует пути к файлу апплета, а значение —цифре из этого списка:
  • 0x00000001 - Оформление и персонализация
  • 0x00000002 - Оборудование и звук
  • 0x00000003 - Сеть и Интернет
  • 0x00000004 - Более не используется. Все апплеты с такой категорией отображаются в «Оборудование и звук»
  • 0x00000005 - Система и ее безопасность (Система и обслуживание в Vista)
  • 0x00000006 - Часы, язык и регион
  • 0x00000007 - Специальные возможности
  • 0x00000008 - Программы
  • 0x00000009 - Учетные записи пользователей и семейная безопасность
  • 0x0000000a - Безопасность (в Windows 7 не используется. Элементы отображаются в категории Система и ее обслуживание)
  • 0x0000000b - В Vista - Мобильные ПК (отображается только на переносных компьютерах) , в Windows 7 не используется вообще.
  • 0xFFFFFFFF - Не отображать данный апплет
Если для апплета описанным выше способом категория не задана, то он отображается в окне по ссылке «Все элементы Панели управления» (в Vista она называется «Дополнительные параметры»).
Пример. Нештатный апплет от аудиокарты Realtek отображается в категории «Оборудование и звук»:
cpl003.jpg

Несколько слов о штатных апплетах Панели управления. Системные CPL-апплеты разносятся по категориям по тому же принципу, что и сторонние, но принадлежность к категории для них задается в разделе
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Extended Properties\System.ControlPanel.Category
cpl004.jpg

Что касается ActiveX-апплетов, механизм их распределения по категориям несколько иной. Принадлежность к категории для них указывается прямо в разделе GUID-описания ActiveX, строковым параметром System.ControlPanel.Category. Его значение – это одна или несколько цифр, разделенных запятой, каждая из которых олицетворяет собой отдельную категорию Панели управления. Если цифр несколько, то апплет показывается сразу в нескольких категориях. Вот эти цифры:

0 - Без категории (Все элементы Панели управления)
1 - Оформление и персонализация
2 - Оборудование и звук
3 - Сеть и Интернет
4 - Более не используется. Все апплеты с такой категорией отображаются в «Оборудование и звук»
5 - Система и ее безопасность (Система и обслуживание в Vista)
6 - Часы, язык и регион
7 - Специальные возможности
8 - Программы
9 - Учетные записи пользователей и семейная безопасность
10 - Безопасность (в Windows 7 не используется. Элементы отображаются в категории Система и ее обслуживание)
11 - В Vista - Мобильные ПК (отображается только на переносных компьютерах) , в Windows 7 не используется вообще.


Давайте посмотрим на примере апплета «Электропитание», как это работает. Его GUID-описание находится в разделе
Код:
HKEY_CLASSES_ROOT\CLSID\{025A5937-A6BE-4686-A844-36FE4BEC8B6D}
cpl005.jpg

Значение параметра System.ControlPanel.Category в Windows Vista, в которой я готовлю сейчас эту статью, равно «2,5,11», значит, апплет доступен из категорий Оборудование и звук, Система и ее безопасность и Мобильные ПК. В этом легко убедиться:
cpl006.jpg


Панель управления и Безопасный режим (Safe mode)
В безопасном режиме в Панели управления отображаются далеко не все апплеты. Как и в обычном режиме работы, механизм формирования списка CPL- и ActiveX-апплетов весьма схож, но контролируется разным ветками реестра. Какие CPL-апплеты должны показываться, определяется параметрами раздела реестра
Код:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows \CurrentVersion\Control Panel\ExtendedProperties\System.ControlPanel.EnableInSafeMode
cpl007.jpg

Здесь имя каждого из параметров представляет собой путь к CPL-файлу, а значение – это значние типа DWORD из следующего списка:
  • 0x00000001 - Апплет отображается только в «обычном» Safe Mode.
  • 0x00000002 - Апплет отображается в Безопасном режиме с поддержкой сети.
  • 0x00000003 - Апплет всегда отображается, какой бы режим Safe Mode не был выбран при запуске системы.
Что касается ActiveX-апплетов, то видимостью в Безопасном режиме управляет DWORD-параметр System.ControlPanel.EnableInSafeMode в разделе GUID-описания с теми же возможными значениями. Опять-таки, вот пример с апплетом «Электропитание»:
cpl008.jpg

Как несложно догадаться, этот апплет отображается в любом из «Безопасных» режимов.

Отображение ActiveX-апплетов вне Панели управления
Помимо непосредственно Панели управления, ActiveX-апплеты могут быть добавлены в любую другую виртуальную папку ("Мой компьютер", к примеру) по принципу присутствия подраздела CLSID в соотвствуеющем NameSpace:

Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace
вы добавите "Сетевые подключения" непосредственно на Рабочий стол.
005.jpg

  • Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе
    Код:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace

    вы добавите "Сетевые подключения" в Компьютер.
    006.jpg

  • Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе
    Код:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NetworkNeighborhood\NameSpace
    вы добавите "Сетевые подключения" в папку Сеть.
    007.jpg

  • Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе

    Код:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\PrintersAndFaxes\NameSpace

    вы добавите "Сетевые подключения" в папку Принтеры.
    008.jpg
Я полагаю, принцип и суть вам ясны? Отмечу, особняком здесь стоит панель навигации Проводника (область слева). Разговор о ней займет ещё одну статью такого же размера (я опубликую её в ближайшее время).
Внимание! Никогда не удаляйте \NameSpace\ подразделы, созданные не вами! Вы испортите операционную систему, удаленные апплеты перестанут открываться.
Создание ярлыков на элементы Панели управления
Проводник умеет запускать так называемые Shell:-объекты. Набрав в диалоге "Выполнить" shell:Desktop, вы открете рабочий стол. Desktop, как вы наверное уже догадались, это friendly name объекта ActiveX. Если известен CLSID объекта, можно заставить Проводник его выполнить вот такой командой:
Код:
Explorer.exe shell:::{CLSID}
Например, командна, которая откроет апплет "Параметры папки":
Код:
Explorer.exe shell:::{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}
Вот ещё пара интересных ярлыков:
Свернуть все окна:
Код:
C:\Windows\explorer.exe shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}
Переключение между окнами:
Код:
C:\Windows\explorer.exe shell:::{3080F90E-D7AD-11D9-BD98-0000947B0257}
009.jpg

способом, и более прозрачным, чем внедрение апплетов в NameSpace.
Для быстрого создания нужных вам ярлыков вы можете снова воспользоваться программой CLSID Dump, поставив флажки на нужные вам ActiveX-апплеты и нажав кнопку Shortcut в программе. Ярлыки создаются они в папке, которую вы сами укажете.
010.jpg


Источник: Winreview.ru
 

Вложения

  • CLSIDDump.zip
    25.6 KB · Просмотры: 2
Последнее редактирование:
Вопросы к автору статьи. Хотел убрать эту фразу из текста, а потом что не имею права менять. Раз решил сделать он такую завлекаловку, то пусть остаётся.
 
Назад
Сверху Снизу