Прописываемся в панель управления

Сегодня мы будем рассматривать, как прописать свое приложение в панель управления.
Подопытная ОС, на которой все проделывалось — одна из «самопальных» рунетовских сборок Windows XP. После копания в реестре установленной сборки я и написал пост на одном из форумов, а теперь публикую здесь. Хочу заметить, что многие доморощенные «сборщики» дистрибутивов Windows XP так плохо разбираются в своих сборках, что даже не знают, как/что/куда интегрируется.

Ну ладно, теперь к делу. Лезем под кат 😉

Элементы панели управления прописываются в реестре в ключе «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace».
У каждого элемента панели управления свой ключ. Фактически ключи всегда пустые. Только в параметре ключа по-умолчанию прописано название.

Создадим в указанном выше ключе реестра, к примеру, подключ «{D14ED2E1-C75B-443c-BD7C-111111111115}». В параметре по-умолчанию впишем «Добавить редактор реестра в панель управления».

Второй шаг — создание в ключе «HKEY_CLASSES_ROOT\CLSID» подключа с тем же именем «{D14ED2E1-C75B-443c-BD7C-111111111115}».
В этом создаваемом ключе будет храниться информация об апплете, добавляемом в панель управления.

Ниже приводится пример файла реестра example.reg с данными, импортируемыми в реестр в ходе решения нашей задачи:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{D14ED2E1-C75B-443c-BD7C-111111111115}]
@="Добавить редактор реестра в панель управления"

[HKEY_CLASSES_ROOT\CLSID\{D14ED2E1-C75B-443c-BD7C-111111111115}]
@="RegEdit"
"InfoTip"="Редактор реестра"

[HKEY_CLASSES_ROOT\CLSID\{D14ED2E1-C75B-443c-BD7C-111111111115}\DefaultIcon]
@="%SystemRoot%\regedt32.exe,0"

[HKEY_CLASSES_ROOT\CLSID\{D14ED2E1-C75B-443c-BD7C-111111111115}\Shell]

[HKEY_CLASSES_ROOT\CLSID\{D14ED2E1-C75B-443c-BD7C-111111111115}\Shell\Open]

[HKEY_CLASSES_ROOT\CLSID\{D14ED2E1-C75B-443c-BD7C-111111111115}\Shell\Open\Command]
@="regedt32.exe"

Думаю, содержание файла будет понятно всем:

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{D14ED2E1-C75B-443c-BD7C-111111111115}] — ссылка на ключ с данными апплета;
  • [HKEY_CLASSES_ROOT\CLSID\{D14ED2E1-C75B-443c-BD7C-111111111115}] — ключ с данными апплета;
  • [HKEY_CLASSES_ROOT\CLSID\{D14ED2E1-C75B-443c-BD7C-111111111115}\DefaultIcon] — значок апплета в панели управления;
  • [HKEY_CLASSES_ROOT\CLSID\{D14ED2E1-C75B-443c-BD7C-111111111115}\Shell\Open\Command] — команда, запускающая апплет.

Таким образом видно, что в панель управления можно добавлять не только cpl-апплеты, но и exe-файлы и другие исполняемые файлы и команды.

PS. Строковые параметры, содержащие пути к файлам, все же рекомендуется записывать в расширенном строковом формате REG_EXPAND_SZ, но можно и в стандартном строковом формате REG_SZ. В примере reg-файла выше, пути к файлам указаны в стандартном строковом формате REG_SZ. Данные расширенного строкового формата REG_EXPAND_SZ в reg-файле записываются в hex-коде. К примеру:
Windows Registry Editor Version 5.00

HKEY_CURRENT_USER\Software\Example_Key]
"Example_Value"=hex:ff,ff,00,00

Оставить комментарий