В данной статье я напишу как можно добавить компоненты системных приложений, а также ярлык на любую программу в панель управления, в мой компьютер, а также на рабочий стол.
Добавлять ярлыки будем при помощи реестра, придется создать или воспользоваться существующим CLSID в ветке реестра HKEY_CLASSES_ROOTCLSID, для генерации которого, в случае необходимости, можно воспользоваться стандартной утилитой uuidgen.exe, входящей в состав Microsoft SDK, либо перейдя по
следующей ссылке. В тексте GUID записывается в виде строки из шестнадцатеричных цифр, разбитых на группы дефисами и окружённой фигурными скобками: {6F9619FF-8B86-D011-B42D-00CF4FC964FF}. Microsoft применяет GUID в OLE, COM и DCOM — например, в качестве идентификаторов для классов (CLSID), интерфейсов (IID), библиотек типов (LIBID). Использование GUID гарантирует, что две (возможно, несовместимые) версии одного компонента могут иметь одно и то же имя, но быть отличимыми по GUID.

Алгоритм, который Microsoft использовала для генерации GUID, был широко раскритикован. В частности, в качестве основы для генерации части цифр GUID использовался MAC-адрес сетевого адаптера, что означало, например, что по данному документу MS Word (также получающему при создании свой уникальный GUID) можно было определить компьютер, на котором он был создан. Позже Microsoft изменила алгоритм таким образом, чтобы он не включал в себя MAC-адрес.

Для корректного описания объекта нужно создать следующие папки внутри нашего CLSID. Например:

[HKEY_CLASSES_ROOTCLSID{77708248-f839-436b-8919-527c410f48b9}]
@=»Редактор реестра»
«InfoTip»=»Открывает редактор реестра»
«System.ControlPanel.Category»=»5»

[HKEY_CLASSES_ROOTCLSID{77708248-f839-436b-8919-527c410f48b9}DefaultIcon]
@=»%SYSTEMROOT%\regedit.exe»

[HKEY_CLASSES_ROOTCLSID{77708248-f839-436b-8919-527c410f48b9}Shell]

[HKEY_CLASSES_ROOTCLSID{77708248-f839-436b-8919-527c410f48b9}ShellOpen]

[HKEY_CLASSES_ROOTCLSID{77708248-f839-436b-8919-527c410f48b9}ShellOpenCommand]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,
  00,5c,00,72,00,65,00,67,00,65,00,64,00,69,00,74,00,2e,00,65,00,78,00,65,00,
  00,00

[HKEY_CLASSES_ROOTCLSID{77708248-f839-436b-8919-527c410f48b9}ShellFolder]
«Attributes»=dword:00000000
где, все ключи и параметры можно просмотреть в следующей таблице:

Ветка реестра Параметр Тип данных Значение Описание
HCCRCLSID{ID} @ REG_SZ Редактор реестра Название ярлыка
HCCRCLSID{ID} InfoTip REG_SZ Открывает редактор реестра Подробное описание ярлыка. Отображается при наведении курсора на сам ярлык
HCCRCLSID{ID}DefaultIcon @ REG_SZ %SYSTEMROOT%\regedit.exe Путь к иконке для ярлыка
HCCRCLSID{ID}ShellOpenCommand @ REG_SZ 25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25, 00,5c,00,72,00,65,00,67,00,65,00,64,00,69,00,74,00,2e,00,65,00,78,00,65,00, 00,00 Путь к самому приложению
HCCRCLSID{ID}ShellFolder Attributes DWORD 00000000 Запрещает переименование/удаление ярлыка


 
Если не указать значение Attributes, то данный можно будет переименовывать и удалять.
В этой таблице подробно расписаны каждые значения, так что можно смело пробовать создавать ярлык для своего приложения…
Но это еще не все. Для того, чтобы этот ярлык был добавлен в «Панель управления» или в «Мой компьютер», нужно сделать следующее:
создать в ветке HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerControlPanelNameSpace раздел с CLSID (в нашем случае будет [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerControlPanelNameSpace{77708248-f839-436b-8919-527c410f48b9}]) и добавить следующее значение дефолтному (@) параметру — @=»Add Registry Editor to Control Panel» — текст нашего ярлыка. Сохранить reg-файл и запустить его. в итоге получится следующее:
 
controlpanel
Для того, чтобы в контекстном меню ярлыка была еще опция «Проводник» достаточно в параметре
Attributes, значение изменить на hex:00,01,00,a0
Для того, чтобы иконка появилась в «Моем компьютере» нам нужно лишь изменить последний ключ на HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace, где просто вписать правильный CLSID и у нас появится иконка в раздее Other (Другие), как показано на следующем рисунке:
mycomputer 

Для создания ярлыка на рабочем столе, всего навсего изменяем

ExplorerMyComputerNameSpace на

ExplorerDesktopNameSpace.

Здесь перечисленны CLSID для почти всех специальных каталогов Windows.

  

Журнал.{FF393560-C2A7-11CF-BFF4-444553540000}
Интернет.{FBF23B42-E3F0-101B-8488-00AA003E56F8}
Корзина.{645FF040-5081-101B-9F08-00AA002F954E}
Мои документы.{450D8FBA-AD25-11D0-98A8-0800361B1103}
Мой компьютер.{20D04FE0-3AEA-1069-A2D8-08002B30309D}
Назначенные задания.{D6277990-4C6A-11CF-8D87-00AA0060F5BF}
Панель управления.{21EC2020-3AEA-1069-A2DD-08002B30309D}
Папка кэша ActiveX.{88C6C381-2E85-11D0-94DE-444553540000}
Папка подписки.{F5175861-2688-11D0-9C5E-00AA00A45957}
Портфель.{85BBD920-42A0-1069-A2E4-08002B30309D}
Принтеры.{2227A280-3AEA-1069-A2DE-08002B30309D}
Рабочий стол.{00021400-0000-0000-C000-000000000046}
Сетевое окружение.{208D2C60-3AEA-1069-A2D7-08002B30309D}
Удаленный доступ к сети.{992CFFA0-F557-101A-88EC-00DD010CCC48}
Шрифты.{BD84B380-8CA2-1069-AB1D-08000948F534}
The Microsoft Network.{00028B00-0000-0000-C000-000000000046}

Знание CLSID системной папки позволяет сделать весьма многое:
Добавить ее в произвольное место на компьютере (на Рабочий стол, меню «Пуск», просто в любой каталог). Для этого нужно создать каталог с любым именем, а в качестве расширения указать CLSID желаемой системной папки. Например, если на рабочем столе нужно создать каталог «Удаленный доступ к сети», то каталог будет называться «Удаленный доступ к сети.{992CFFA0-F557-101A-88EC-00DD010CCC48}» (без кавычек).

Скачать твики и отменяющие твики можно отсюда: Добавление Regeit в MyComputer и Добавление Regedit в Control Panel

Реклама