4

У меня есть существующий инструмент командной строки, который принимает путь к файлу / папке в качестве единственного аргумента.

Я хочу создать расширение оболочки Windows Explorer, которое при вызове запускает инструмент командной строки с текущим путем.

Это то же самое, что и знаменитая Open command line here , но с инструментом, отличным от cmd.exe .

Это возможно? Как это сделать?

1 ответ1

5

Есть довольно простой способ сделать это, если вы знаете, как обращаться с редактором реестра.

Прежде всего, откройте regedit и перейдите к HKEY_CLASSES_ROOT\Directory\shell .

Есть несколько мест, где мы можем добавить эти ключи, HKEY_CLASSES_ROOT\Directory\shell добавит параметр в контекстное меню папок.

У вас должно быть несколько существующих ключей, особенно cmd который является опцией Open command window here .

Как только вы окажетесь в этой папке, давайте создадим новый ключ (right click -> New -> Key), назовите его как хотите. Теперь измените данные значения (Default) на то, что вы хотите отображать в контекстном меню в проводнике Windows.

После того, как вы создали ключ и изменили данные значения (по умолчанию)

Теперь под вашим новым ключом вы должны создать еще один ключ с именем command и установить его (Default) данные для команды, которую вы хотите выполнить. Вы можете использовать %V для текущей папки. См. Этот вопрос для получения подробной информации об аргументах, которые вы можете использовать: какие специальные переменные доступны при написании команды оболочки для контекстного меню

Теперь, если вы хотите добавить опцию, когда вы нажимаете на фон Windows Explorer (любое пустое пространство на правой панели Explorer), вам придется сделать то же самое, но добавить ключ в HKEY_CLASSES_ROOT\Directory\shell\Background .

Пример ключа как в фоновом, так и в каталоге папок

Если вы хотите добавить опцию в контекстном меню для определенного расширения файла, вам просто нужно найти подходящий класс и добавить еще один ключ в его папку shell например:

Добавить опцию оболочки в jpgs

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .