Я узнал, как добавлять элементы контекстного меню, вызываемые правой кнопкой мыши, к файлам в проводнике Windows путем добавления ключей в реестр. Т.е. я могу щелкнуть правой кнопкой мыши файл в проводнике и запустить для этого файла собственное приложение.
Я хотел бы сделать то же самое для папки, но пока не нашел способа сделать это. Я вижу статьи о создании / написании пользовательских обработчиков контекстного меню, но я бы не стал туда заходить.
Я нашел здесь статью о том, как добавить элементы каскадного контекстного меню на рабочий стол и на «компьютер» в проводнике, но это не работает ни для одной папки.
Я хотел бы иметь возможность добавлять свое собственное приложение в контекстное меню, чтобы оно работало как с файлами, так и с папками. Есть ли способ сделать это без написания обработчика контекстного меню?
Я нашел решение в статье ниже, в которой описывается, как это сделать через реестр для файлов, а также для папок:
В следующих двух статьях представлена дополнительная информация и варианты:
источник
Ответы:
В редакторе регистрации (
regedit.exe
) найдите:Контекстное меню для щелчка правой кнопкой мыши по папкам на левой панели проводника Windows или на фоне каталога на правой панели:
HKEY_CLASSES_ROOT\Directory\Background\shell
если вы администраторHKEY_CURRENT_USER\Software\Classes\directory\Background\shell
если вы обычный пользовательКонтекстное меню для щелчка правой кнопкой мыши по папкам на правой панели проводника Windows:
HKEY_CLASSES_ROOT\Directory\shell
если вы администраторHKEY_CURRENT_USER\Software\Classes\directory\shell
если вы обычный пользовательКонтекстное меню для любого файла:
HKEY_CLASSES_ROOT\*\shell
если вы администраторHKEY_CURRENT_USER\Software\Classes\*\shell
если вы обычный пользовательВо всех случаях:
shell
, назвав его так, как вы хотите назвать пункт контекстного менюcommand
(обязательное имя)default
свойство в,command
чтобыmyprogrampath\path\path\executable.exe %1
передать путь к файлу и имя выбранного файла вашей пользовательской программеБольше настроек:
icon
ключа, созданного на шаге 1, со значением, соответствующим пути ресурса значка. Вы также можете указать целочисленные аргументы, чтобы указать, какой значок использовать. Пример:%SystemRoot%\System32\shell32.dll,3
Extended
при нажатой клавише Shift : добавляет пустое строковое значение, названное для ключа, созданного на шаге 1Position
одной из:Top
,Bottom
источник
HKEY_CLASSES_ROOT\Directory\Background\shell
может повлиять только на щелчок правой кнопкой мыши на фоне каталога"%1"
если в пути есть пробелы.Command
, не так ли?%1
на%V
.Я вернулся и также ответил на это в другой теме, поскольку, похоже, по этому вопросу особо не много.
Я обнаружил, что самый простой способ - добавить строковое значение к ключу с именем «AppliesTo» и установить его значение «под: {путь}»
В моем примере я хочу, чтобы он просматривал только T-диск, поэтому мое строковое значение - «AppliesTo»: «под: T:».
В C # это легко сделать с помощью следующего:
источник
Нашли более чистое, простое и быстрое решение: создайте текстовый файл, заполните его этим содержимым, обновите его в соответствии с вашими потребностями, сохраните с суффиксом .reg и запустите его (ему не нужны права администратора, потому что он обращается к пользовательской части реестра ):
Таким образом, у вас также может быть резервная копия вашей конфигурации: просто сохраните файл .reg в надежном месте. Если вы вручную редактируете реестр после запуска файла, щелкните правой кнопкой мыши и выберите «экспорт».
Остерегайтесь двойных пробелов в пути: \\
источник
Единственное хорошее решение, которое я нашел действительно работающим: /superuser/1097054/shell-context-menu-registry-extension-doesnt-work-when-default-program-is-other
Добавьте ключи в HKEY_CLASSES_ROOT \ SystemFileAssociations \ your.extension \ shell \ command. Измените последний ключ командой, которую вы хотите выполнить.
Для моей цели это было:
Если я экспортирую его, я получаю .reg:
источник
Откройте командную строку [запуск от имени администратора] и выполните эту команду
Для получения дополнительной информации о дополнительных функциях выполните: -
источник