Nilesoft Shell — менеджер контекстных меню для Windows

Использование утилиты Nilesoft ShellГибких редакторов контекстных меню рабочего стола, файлов, папок, панели задач и других элементов Проводника Windows, одинаково совместимых с Windows 11, 10, 8.1 и 7 не так много. Nilesoft Shell — одна из таких бесплатных программ.

В этом обзоре о возможностях Nilesoft Shell — утилиты с открытым исходным кодом для настройки собственных контекстных меню Windows и дополнительная информация, которая может пригодиться, если вы решите разобраться с программой.

Как выглядят контекстные меню Nilesoft Shell

Ранее на сайте публиковались статьи об инструментах редактирования контекстных меню в Windows 10 и Windows 11, таких как Easy Context Menu или Custom Context Menu. Эти программы позволяют добавлять или менять пункты стандартных контекстных меню. Nilesoft Shell полностью заменяет системные контекстные меню проводника своими (но добавляет в них и стандартные системные пункты контекстного меню текущей системы):

Пример контекстных меню Nilesoft Shell

При этом дизайн меню, как вы можете видеть из скриншотов выше, имеет «стиль Windows 11» в том числе при работе в Windows 10 (нижний скриншот) — с закругленными углами, соответствующими значками и поддержкой прозрачности.

Shell меняет меню для различных элементов Проводника Windows:

  • Файлов и папок, дисков в проводнике
  • Рабочего стола
  • Панели задач (при этом его можно редактировать отдельно от общего меню для элементов проводника)

Всё это работает быстро и почти не вызывает дополнительной нагрузки на компьютер. Во всяком случае, в моем тесте дела обстояли именно так.

Использование Nilesoft Shell

Скачать Nilesoft Shell можно одним из следующих способов:

Сразу после установки контекстные меню Windows будут изменены: примеры меню рабочего стола и файлов вы могли увидеть на скриншотах выше, в них будут добавлены дополнительные пункты, такие как «Стать владельцем», пункты для изменения атрибутов файлов и другие. Дополнительно будет модифицировано контекстное меню панели задач:

Активные меню Nilesoft Shell

С этого момента можно просто начать пользоваться новым контекстным меню, но самая интересная часть программы — возможность редактирования, создания собственных пунктов меню, команд и значков для них, изменения оформления. Учитывайте, это потребует от вас готовности разобраться в коде для описания структуры меню в Shell.

Действия по настройке меню путем редактирования файлов скриптов из папки Nilesoft Shell на собственном, сравнительно простом для понимания скриптовом языке. Здесь пригодится следующая информация:

  • Чтобы попасть в папку со скриптами, удерживая Shift, нажмите правой кнопкой мыши по панели задач и выберите пункт меню Shell — Directory. Открыть папку скриптов Shell
  • Основной файл контекстных меню имеет имя shell.nss (редактировать можно в любом текстовом редакторе) и содержит строки для настройки оформления (например, прозрачности) и импорта модулей (таких же файлов .nss), содержащих пункты меню. Файл shell.nss
  • В основном файле shell.nss содержатся несколько секций: var — для задания глобальных переменных; set — для указания глобальных настроек, например, цвета, прозрачности и других параметров оформления; static — для настройки и изменения стандартных пунктов контекстных меню; dynamic — для создания собственных пунктов контекстных меню.
  • Файлы модулей контекстного меню содержатся в папке imports — вы можете изучить уже имеющиеся, чтобы разобраться в скриптовом языке или изменить их (например, поменять названия пунктов меню на русский язык). Папка imports
  • Собственные пункты меню можно прописать прямо в shell.nss, но лучше создать собственный файл .nss в imports, а затем прописать его импорт в разделе Dynamic главного файла контекстного меню. Контекстное меню панели задач, возможно, удобнее будет редактировать прямо в файле taskbar.nss
  • Для редактирования стандартных пунктов меню можно использовать уже имеющийся файл static.nss, импорт которого прописан в разделе Static файла shell.nss. Например, следующий код в static.nss скроет стандартные пункты «Обновить» и «Персонализация», а для пункта «Сортировка» изменит имя, значок и его цвет:
    item(find='"Обновить"|"Персонализация"' visibility="remove")
    item(find='Сортировка' title='Порядок' image=[\uE010,#1096f7])

Изучить синтаксис скриптов можно как путем просмотра уже готовых файлов .nss в папке imports, так и обратившись к документации на официальном сайте, где показаны все поддерживаемые функции, способы описать свойства пунктов меню и представлена дополнительная информация.

На творчество ниже мне потребовалось около 15 минут без предварительного знакомства с синтаксисом языка, используемого в Nilesoft Shell. Некоторые из пунктов даже работают, а большая часть времени была потрачена на то, чтобы разобраться со значками для пунктов меню:

Собственное контекстное меню в Nilesoft Shell

Код файла .nss для примера на изображении выглядел следующим образом:

Код своего меню в Nilesoft Shell

После внесения изменений в код shell.nss и ваших модулей .nss потребуется повторно зарегистрировать меню в Проводнике, шаги будут следующими:

  1. Удерживая Shift нажать правой кнопкой мыши по панели задач.
  2. В разделе «Shell» открыть пункт «Manager».
  3. Нажать кнопку «Register» и подтвердить перезапуск проводника после выполнения регистрации. Менеджер меню Nilesoft Shell

Если после регистрации измененных контекстных меню стали отображаться меню Windows по умолчанию, это говорит о том, что где-то в вашем коде была ошибка: потребуется найти и исправить ошибку (либо убрать импорт вашего кода из shell.nss), запустить Shell Manager через меню Пуск или из папки с программой (от имени администратора), а затем снова выполнить регистрацию.

Краткий список возможностей при редактировании и настройке контекстных меню в NileSoft Shell:

  • Использование переменных в именах пунктов меню (то есть названия пунктов могут меняться динамически), пример на скриншоте — подстановка имени папки, внутри которой производится действие в качестве части имени пункта меню: Использование переменных для имен пунктов меню
  • Настройка показа пунктов меню только для определенных элементов — папок, файлов, только при выборе одного или несколько элементов, только для файлов одного типа.
  • Изменение степени прозрачности, цвета, эффекта прозрачности (в файле shell.nss)
  • Добавление значков и настройка их цветов из SVG (код иконок SVG удобно прописать в images.nss и обращаться к ним по имени), символьных шрифтов (через указание кода символа и имени шрифта), файлов DLL и других файлов с графическими ресурсами. Коды встроенных значков Shell можно посмотреть на этой странице.
  • Использование переменных, условных операторов.
  • Встроенные функции для работы с файловой системой, реестром, окружением Windows, запуска системных утилит.

Подводя итог, Shell — один из лучших инструментов для работы с контекстными меню, которые я встречал. Если вас не смущает необходимость изучения синтаксиса используемого скриптового языка, используемого в программе — рекомендую.

Дать исчерпывающую инструкции по написанию кода в рамках этого обзора я не могу (пришлось бы переводить и адаптировать всё оригинальное руководство), но, если возникнут вопросы по реализации какой-то задумки, дайте знать в комментариях: возможно, мне или кому-то из читателей удастся вам помочь.

Комментарии (11) к Nilesoft Shell — менеджер контекстных меню для Windows

  • Юрий

    А как можно узнать с какими аргументами запускается программа после клика по меню..
    Опишу:
    Есть программа PDF X-CHANGE EDITOR
    У него есть контекстное меню, скорее всего отдельная библиотека используется.
    Есть пункт объединить PDF файлы, то есть, выделив часть файлов, программа открывается и склеивает все в файлы один…
    Мне нужна именно команда, аргументы, с какими и каким образом была запущена программа после клика на это меню…

    Не подскажете? Случай единичный, но может вдруг?

    Ответить

    • Dmitry

      Здравствуйте.
      Вы можете посмотреть команды с помощью программки ShellMenuView — в некоторых случаях всё понятно и удобочитаемо. К сожалению, не всегда так.
      Если программа в «команда» выдаст просто путь к exe файлу, попробуйте этот файл в командной строке запустить с параметром /? или /h — быть может есть встроенная справка по поддерживаемым параметрам.
      Поглядел также официальный мануал к вашему редактору: для некоторых вещей там описаны параметры командной строки, но для тех, про которые вы спрашиваете — нет.

      Ответить

  • System Exe

    Здравствуйте.
    А возможно ли перекрашивать иконки? Например существующий пункт «удалить» сделать красным?

    Ответить

    • Dmitry

      Здравствуйте. Насколько помню — да, есть там опция задать цвет иконки. Как именно — не помню (и глянуть сейчас не могу).

      Ответить

  • System Exe

    И еще вопрос по скрытым меню.
    Например мне не нравятся постоянные отображения пунктов: terminal, file manage, develop — хочу чтобы они отображались только по «правый клик+Shift» это возможно?
    В стандартном меню это достигается добавлением ключа в соответствующую ветку реестра: пустого строкового параметра, с именем Extended
    А в этом меню это выполнимо?
    P.S/ программа понравилась, но надо разобраться как адаптировать под себя.
    Кстати после установки этой меню если нужно вернутся к классическому меню нужно зажать «Ctrl+Win+Правый клик». Если нужно обратно включить это то «Ctrl+Правый клик». — без перезагрузки проводника — Оч. быстро и удобно.

    Ответить

  • System Exe

    Там ошибочка в моем комментарии в строке
    (В shell.nss закомментировал (тем самым отключив) подключение всех доп пунктов кроме static.nss, images.nss) Ошибка: не import.nss а taskbar.nss.
    В коде описано правильно а в описании нет.

    Ответить

    • Dmitry

      А у меня тут проблемки с комментариями содержащими код)) Не могу опубликовать, рвется шаблон (ну либо код перестает быть читабельным, если не оборачивать его), а часть тегов, которые позволяют решить проблему, WP почему-то стал резать в комментариях (кроме админских).
      Так что если что, отсутствие вашего коммента изначального — не злая модерация, а нерешенная пока техническая проблема.

      Ответить

      • System Exe

        Понятно.
        Да я разобрался с этой прогой думаю поделюсь с народом может кому нужно будет. т.к. прога маст хэв — давно искал нечто подобное чтобы контекстное меню редактировать. причем совершенно любой существующий пункт можно скрыть, спрятать под shift, добавить или убрать иконку, программу, каталога, функции и тд и тп.

        Ответить

  • System Exe

    Вопрос: как ты добавил свою иконку? по типу как у тебя на скрине кодом ты указал image=icon.remontka. далее ты в image.nss добавил расположение, или как?

    Ответить

    • Dmitry

      Добавлял так:
      1. в images.nss прописал свою иконку: имя, код svg по аналогии с другими прописанными там иконками такого типа (не помню как точно, сейчас глянуть не могу уже, удалил, помню лишь что не сразу заработало как нужно и пришлось поэкспериментировать)
      2. Ну а в меню уже по имени image=icon.remontka

      Ответить

  • System Exe

    Спасибо, заработало

    Ответить

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

Интересное
Новое
Список инструкций Windows 11 Windows 10 Подписаться