- Сообщения
- 14,923
- Решения
- 5
- Реакции
- 6,856
Мужайся, читатель - тебя ждет технический пост, долгий и унылый. Из него ты узнаешь, как выглядит Панель управления изнутри, какие элементы в неё входят, научишься размещать их в других папках, добавлять скрытые во имя светлого будущего элементы, такие как "Сетевые подключения", на их законное место, и много другое. Я поделюсь с тобой утилитой 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, идентифицирующий "Учётные записи пользователей":
Говоря о присутствии ActiveX-апплетов в Панели Управления, я неслучайно употребил "потенциальная возможность". Далеко не все апплеты представлены в Панели. Например, нашумевший в свое время "GodMode" и банальный апплет "Сетевые подключения" там отсутствуют. Состав того, что отображается в Панели управления, определяется ключом
Его подразделы представляют собой как раз список ActiveX-апплетов. Вы можете добавлять сюда системные апплеты, по умолчанию не отображаемые в Панели. От вас требуется знание необходимого CLSID. Но и это ещё не всё. Некоторые ActiveX-апплеты так отконфигурированы так (тот же GodMode, например), что даже если вы добавите его в NameSpace, в Панели управления отображаться не будет. Подробнее об этом - на MSDN, и об этом я расскажу ниже. Путешествие по дебрям системного реестра - занятие весьма унылое, поиск нужного CLSID - тем более. Поэтому я только что набросал на коленке утилиту CSLID Dump, позволяющую получить список всех ActiveX-апплетов.
Прошу строго не судить, она кривая и одноразовая. Она позволяет:
Воспользуемся утилитой для получения CLSID элемента "Сетевые подключения" и добавим его в Панель управления , раз уж я о нем упомянул.
Итак, мы выяснили, что для отображения ActiveX-эелементов в Панели управления нужно как минимум присутсвие GUID-а элемента в ключе
Касательно CPL-апплетов, дело обстоит чуть иначе и прозрачней: по умолчанию в Панель управления попадают все CPL-апплеты, находящиеся в папке \Windows\System32. Кроме этого, существуют определенные механизмы, позволяющие:
либо в разделе
В любом из разделов достаточно создать параметр строкового типа с именем, соответствующим имени файла апплета.
Очевидно, что HKEY_CURRENT_USER-раздел влияет только на текущего пользователя, в то время как прописанный в HKEY_LOCAL_MACHINE разделе апплет становится невидим всем пользователям компьютера.
Отображение CPL-файла, не находящегося в System32, – задача не намного сложнее. Достаточно прописать путь к CPL файлу в разделе реестра
Записи в нем представляют собой строковые параметры, в качестве имени которых выступают названия апплетов, а в качестве значений – полные пути к CPL файлам:
Категории Панели управления
Одним новшеств, которое принесла с собой любимая пользователями Windows XP, была Панель управления, разбитая на категории. Это несколько смущало привыкшего к классическому списку пользователя, но давало несомненный выигрыш в скорости работы самой Панели. Особо актуальна категорированная Панель управления в 6-ой версии Windows NT (Vista/7), где обилие апплетов способно поразить любого видавшего виды оператора ПК.
Категория, в которой будет размещаться сторонний CPL-апплет, задаётся в реестре в разделе
Здесь должен присутствовать создать параметр DWORD, название которого соответствует пути к файлу апплета, а значение —цифре из этого списка:
Пример. Нештатный апплет от аудиокарты Realtek отображается в категории «Оборудование и звук»:
Несколько слов о штатных апплетах Панели управления. Системные CPL-апплеты разносятся по категориям по тому же принципу, что и сторонние, но принадлежность к категории для них задается в разделе
Что касается 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-описание находится в разделе
Значение параметра System.ControlPanel.Category в Windows Vista, в которой я готовлю сейчас эту статью, равно «2,5,11», значит, апплет доступен из категорий Оборудование и звук, Система и ее безопасность и Мобильные ПК. В этом легко убедиться:
Панель управления и Безопасный режим (Safe mode)
В безопасном режиме в Панели управления отображаются далеко не все апплеты. Как и в обычном режиме работы, механизм формирования списка CPL- и ActiveX-апплетов весьма схож, но контролируется разным ветками реестра. Какие CPL-апплеты должны показываться, определяется параметрами раздела реестра
Здесь имя каждого из параметров представляет собой путь к CPL-файлу, а значение – это значние типа DWORD из следующего списка:
Как несложно догадаться, этот апплет отображается в любом из «Безопасных» режимов.
Отображение ActiveX-апплетов вне Панели управления
Помимо непосредственно Панели управления, ActiveX-апплеты могут быть добавлены в любую другую виртуальную папку ("Мой компьютер", к примеру) по принципу присутствия подраздела CLSID в соотвствуеющем NameSpace:
Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе
вы добавите "Сетевые подключения" непосредственно на Рабочий стол.
Внимание! Никогда не удаляйте \NameSpace\ подразделы, созданные не вами! Вы испортите операционную систему, удаленные апплеты перестанут открываться.
Создание ярлыков на элементы Панели управления
Проводник умеет запускать так называемые Shell:-объекты. Набрав в диалоге "Выполнить" shell:Desktop, вы открете рабочий стол. Desktop, как вы наверное уже догадались, это friendly name объекта ActiveX. Если известен CLSID объекта, можно заставить Проводник его выполнить вот такой командой:
Например, командна, которая откроет апплет "Параметры папки":
Вот ещё пара интересных ярлыков:
Свернуть все окна:
Переключение между окнами:
способом, и более прозрачным, чем внедрение апплетов в NameSpace.
Для быстрого создания нужных вам ярлыков вы можете снова воспользоваться программой CLSID Dump, поставив флажки на нужные вам ActiveX-апплеты и нажав кнопку Shortcut в программе. Ярлыки создаются они в папке, которую вы сами укажете.
Источник: Winreview.ru
Дочитавшему до конца - покажу фотку котёнка.
Папка Панель управления не является папкой как таковой, в привычном значении термина, обычно применяемого к файловой системе. На деле это 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, идентифицирующий "Учётные записи пользователей":
Говоря о присутствии ActiveX-апплетов в Панели Управления, я неслучайно употребил "потенциальная возможность". Далеко не все апплеты представлены в Панели. Например, нашумевший в свое время "GodMode" и банальный апплет "Сетевые подключения" там отсутствуют. Состав того, что отображается в Панели управления, определяется ключом
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace
Прошу строго не судить, она кривая и одноразовая. Она позволяет:
- Выполнить конкретный ActiveX, дабы посмотреть, что он делает.
- Экспортировать список CLSID в HTML файл.
- Скопировать выделенный CLSID в буфер обмена Windows
- Создать на помеченные флажками CLSID ярлыки и поместить их в выбранную папку, например, на рабочий стол. Таким образом можно создать собственную папку-панель управления, о чем я писал выше.
Воспользуемся утилитой для получения CLSID элемента "Сетевые подключения" и добавим его в Панель управления , раз уж я о нем упомянул.
- Запускаем CLSID Dump, находим нужный элемент.
- В реестре, в ключе
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace
- Время открыть панель управления.
Итак, мы выяснили, что для отображения ActiveX-эелементов в Панели управления нужно как минимум присутсвие GUID-а элемента в ключе
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace
- отображать апплеты, находящиеся в каких-либо других папках;
- позволяющие скрывать CPL-апплет в Панели управления.
Код:
HKEY_CURRENT_USER\Control Panel\don't load
Код:
HKEY_LOCAL_MACHINE \Software\Microsoft\Windows\CurrentVersion\Control Panel\don't load
Очевидно, что HKEY_CURRENT_USER-раздел влияет только на текущего пользователя, в то время как прописанный в HKEY_LOCAL_MACHINE разделе апплет становится невидим всем пользователям компьютера.
Отображение CPL-файла, не находящегося в System32, – задача не намного сложнее. Достаточно прописать путь к CPL файлу в разделе реестра
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls
Категории Панели управления
Одним новшеств, которое принесла с собой любимая пользователями 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
- 0x00000001 - Оформление и персонализация
- 0x00000002 - Оборудование и звук
- 0x00000003 - Сеть и Интернет
- 0x00000004 - Более не используется. Все апплеты с такой категорией отображаются в «Оборудование и звук»
- 0x00000005 - Система и ее безопасность (Система и обслуживание в Vista)
- 0x00000006 - Часы, язык и регион
- 0x00000007 - Специальные возможности
- 0x00000008 - Программы
- 0x00000009 - Учетные записи пользователей и семейная безопасность
- 0x0000000a - Безопасность (в Windows 7 не используется. Элементы отображаются в категории Система и ее обслуживание)
- 0x0000000b - В Vista - Мобильные ПК (отображается только на переносных компьютерах) , в Windows 7 не используется вообще.
- 0xFFFFFFFF - Не отображать данный апплет
Пример. Нештатный апплет от аудиокарты Realtek отображается в категории «Оборудование и звук»:
Несколько слов о штатных апплетах Панели управления. Системные CPL-апплеты разносятся по категориям по тому же принципу, что и сторонние, но принадлежность к категории для них задается в разделе
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Extended Properties\System.ControlPanel.Category
Что касается 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}
Значение параметра System.ControlPanel.Category в Windows Vista, в которой я готовлю сейчас эту статью, равно «2,5,11», значит, апплет доступен из категорий Оборудование и звук, Система и ее безопасность и Мобильные ПК. В этом легко убедиться:
Панель управления и Безопасный режим (Safe mode)
В безопасном режиме в Панели управления отображаются далеко не все апплеты. Как и в обычном режиме работы, механизм формирования списка CPL- и ActiveX-апплетов весьма схож, но контролируется разным ветками реестра. Какие CPL-апплеты должны показываться, определяется параметрами раздела реестра
Код:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows \CurrentVersion\Control Panel\ExtendedProperties\System.ControlPanel.EnableInSafeMode
Здесь имя каждого из параметров представляет собой путь к CPL-файлу, а значение – это значние типа DWORD из следующего списка:
- 0x00000001 - Апплет отображается только в «обычном» Safe Mode.
- 0x00000002 - Апплет отображается в Безопасном режиме с поддержкой сети.
- 0x00000003 - Апплет всегда отображается, какой бы режим Safe Mode не был выбран при запуске системы.
Как несложно догадаться, этот апплет отображается в любом из «Безопасных» режимов.
Отображение ActiveX-апплетов вне Панели управления
Помимо непосредственно Панели управления, ActiveX-апплеты могут быть добавлены в любую другую виртуальную папку ("Мой компьютер", к примеру) по принципу присутствия подраздела CLSID в соотвствуеющем NameSpace:
Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе
Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace
- Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе
Код:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace
вы добавите "Сетевые подключения" в Компьютер.
- Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе
Код:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NetworkNeighborhood\NameSpace
- Создав подраздел {7007ACC7-3202-11D1-AAD2-00805FC1270E} в ключе
Код:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\PrintersAndFaxes\NameSpace
вы добавите "Сетевые подключения" в папку Принтеры.
Внимание! Никогда не удаляйте \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}
способом, и более прозрачным, чем внедрение апплетов в NameSpace.
Для быстрого создания нужных вам ярлыков вы можете снова воспользоваться программой CLSID Dump, поставив флажки на нужные вам ActiveX-апплеты и нажав кнопку Shortcut в программе. Ярлыки создаются они в папке, которую вы сами укажете.
Источник: Winreview.ru
Вложения
Последнее редактирование: