В первую очередь, я бы советовал прочитать предыдущую часть статьи, где мы добавляли собственные приложения и функции в контекстные меню. Теперь мы научимся создавать группы ярлыков и объединять их в отдельные разделы (каскадные меню). Как и в предыдущий раз, мы будем работать в текстовом редакторе, и потом, одним кликом интегрировать все записи в системный реестр. После рассмотрения каждой строчки кода, я предоставлю свой результат, который нормально работает в моей системе. Все созданные файлы для импорта в реестр можно сохранить на отдельном (не системном) диске и позже (например, после переустановки операционной системы) интегрировать их повторно (при условии, что нужные приложения останутся на том же месте).
В качестве примера, я планирую добавить в контекстное меню рабочего стола раздел "Очистка системы", и в него – ярлыки для запуска двух утилит (CCleaner и Defraggler).

Все действия выполняются в два этапа:
- Создание раздела (каскадного меню)
- Создание подменю с ярлыками
Приступим. Как всегда, создаем текстовый документ и открываем его блокнотом Windows.
Этап №1. В первой строчке прописываем заголовок – идентификатор (он даст понять системе, что этот файл предназначен для интеграции с реестром Windows):
В следующей строчке указываем путь к требуемому контекстному меню (рабочий стол) и желаемое системное название создаваемого раздела:
Дальше прописываем дополнительные свойства для созданного раздела:
(Не обязательно) - Путь, имя файла с требуемой иконкой для раздела, а также (если в нем много изображений) номер нужной картинки
(Не обязательно) - Положение в списке меню. Доступны значения "top" (вверху), или "bottom"(внизу). В данном случае, я хочу поместить этот раздел в сам низ
Название раздела. Тот текст, который мы будем видеть в качестве заголовка в списке меню. Это обязательный параметр
Системные названия пунктов меню нового раздела. Далее мы будем под них создавать параметры в другой ветке реестра. Разделяем их точкой с запятой (в моем случае, это названия двух утилит, которые я планирую добавить)
Первый этап завершен. Мы создали новый раздел в контекстном меню и указали все требуемые для него свойства. В конце прописали названия двух новых веток в реестре, которые на следующем этапе превратятся в два всплывающие пункты меню (для вызова программ CCleaner и Defraggler).
Этап №2. Пришла очередь создать новые ветки с описанием свойств для каждой программы и подветки, указывающие на расположение исполняемых файлов программ. Я опишу все на примере первого приложения, CCleaner. Остальные делаются по тому же принципу. Продолжаем работу в том же текстовом файле...
Создадим новую ветку для приложения. Название должно совпадать с тем, которое Вы указали на предыдущем этапе в строке "SubCommands"
\ccleaner]
Укажем требуемый заголовок, который в последствии мы увидим в меню
Иконка для вызываемого приложения. Можно просто указать путь к исполняемому файлу
Создаем подветку в реестре, в которой будет ключ с командой для запуска приложения
\ccleaner\command]
Ключ с адресом исполняемого файла приложения
Мы практически закончили. Для второго приложения прописываем еще раз 4 последние строчки, только меняем значения по тому же шаблону. В результате, содержимое текстового файла (в моем случае) выглядит следующим образом (можете сверить структуру):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DesktopBackground\Shell\SysCleaning]
"Icon"="SHELL32.dll,32"
"Position"="bottom"
"MUIVerb"="Очистка системы"
"SubCommands"="ccleaner;defraggler"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell
\ccleaner]
@="CCleaner"
"Icon"="D:\\P Program Files\\CCleaner\\CCleaner64.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell
\ccleaner\command]
@="D:\\P Program Files\\CCleaner\\CCleaner64.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell
\defraggler]
@="Defraggler"
"Icon"="D:\\P Program Files\\Defraggler\\Defraggler64.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell
\defraggler\command]
@="D:\\P Program Files\\Defraggler\\Defraggler64.exe"
Сохраняем файл ("Сохранить как" - любое место, любое название, любая кодировка, Тип: Все файлы, расширение: .reg).

Запускаем его, на все системные вопросы отвечаем "Да", проверяем результат.
Для изменения каких-то параметров, достаточно сделать их в том же файле (Правый клик - Открыть с помощью - Блокнот) и повторно его запустить. Для удаления изменений потребуется открыть редактор реестра (Win+R – regedit - OK) и удалить созданные разделы (в моем примере их 3 шт.) вручную (правый клик на разделе – "Удалить"). В этом случае удалятся также все созданные нами подразделы, ключи и параметры. В принципе, всю процедуру по созданию раздела и пунктов контекстных меню, можно производить напрямую, в редакторе реестра, и по мере продвижения смотреть результат, но мне этот путь показался более сложным. На всякий случай, укажу несколько объяснений для этого варианта:
- Создание раздела в реестре - выделяем требуемый раздел, правый клик – "Создать" – "Раздел"
- Для создания параметра, в разделе - правый клик на пустом месте – "Создать" – "Строковый параметр"
- Для изменения названия выделенного параметра - делаем правый клик – "Переименовать"
- Для изменения свойств выделенного параметра - делаем по нему двойной клик.
- В указанных выше примерах, строчки в квадратных скобках – это путь к требуемом разделе
- Значения Icon, Position, MUIVerb, SubCommands – это параметры ("@=" – параметр "по умолчанию")
- Строки, что справа от параметров – это их свойства
- Все названия нужно вводить без скобок
- Во всех путях нужно указывать вместо "\\" так: "\"