Как добавить контекстное меню в папки библиотеки Windows 7

Как добавить контекстное меню в папки библиотеки Windows 7

Я только что закончил настройку своей среды разработки на ПК с Windows 7. Для использования командной строки и Терминала я установил программу Console2, которая просто потрясающая для тех, кто использует Терминал на машине с Windows.

Одной из важных вещей, которая мне была нужна, была возможность быстрого доступа к папкам в терминале без необходимости делать это каждый раз, cd /directroy/name/etc/etcпоэтому моей целью было создание контекстного меню правой кнопкой мыши внутри папки в Проводнике.

Мне удалось сделать это с помощью следующих изменений/дополнений ключа реестра:

[HKEY_CLASSES_ROOT\Directory\shell\open_console]
@=Open Console2 Here
Icon=C:\Program Files\Console2\Console.ico

[HKEY_CLASSES_ROOT\Directory\shell\open_console\Command]
@=C:\Program Files\Console2\Console.exe -d "%v"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\open_console]
@=Open Console2 Here
Icon=C:\Program Files\Console2\Console.ico

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\open_console\Command]
@=C:\Program Files\Console2\Console.exe -d "%v"

Работает отлично, теперь я вижу контекстное меню, позволяющее открыть окно терминала по пути к папке двумя способами.

  1. При щелчке правой кнопкой мыши по имени папки откроется кнопка «Открыть Console2 здесь».
  2. Открыв папку и щелкнув правой кнопкой мыши в фоновом режиме, я вижу то же контекстное меню для открытия терминала.

Теперь моя проблема в том, что я часто получаю доступ к папкам и рабочим областям с помощью библиотек Windows, из-за чего мое контекстное меню не работает, когда я получаю доступ к папке через библиотеку, а не перехожу напрямую в папку.

Например, если я открою Проводник и перейду к...

E:\Server\htdocs\labs\javascript\SampleJSProjectзатем я могу просматривать и использовать свое пользовательское контекстное меню.

Однако если я открою эту же папку с помощью ярлыка/библиотек, путь будет выглядеть следующим образом...

Libaries\Server Labs\javascript\SampleJSProjectи теперь мое контекстное меню для открытия терминала не отображается. Если я нажимаю в области адреса, то он показывает правильный полный путь, как указано выше.

Надеюсь, это простое решение, например, добавление еще одного ключа реестра куда-нибудь, но я не уверен, куда именно?

Есть ли у кого-нибудь идеи или решения?

решение1

Хитрость здесь в том, что у библиотечных папок есть свой собственный ключ.

Как ни странно, это «LibraryFolders», поэтому вам придется изменить ЭТОТ ключ, чтобы получить желаемый эффект.

Например, чтобы добавить контекстную запись «Открыть окно команд здесь» в папку библиотеки, используйте следующий регистр:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\LibraryFolder\Background]

[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell]

[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\cmd]
@="@shell32.dll,-8506"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

НТН

-(е)

решение2

Чтобы расширитьответ sweetlilmre:

Если у вас нет прав на редактирование HKEY_CLASSES_ROOT(проблема, которая возникла у меня на моем рабочем ноутбуке), вы также можете редактировать HKEY_CURRENT_USER\Software\Classes\LibraryFolder\Background\shell\cmd\command.
Возможно, вам придется создать LibraryFolderи его подключи (мне пришлось), но достаточно создать пустые ключи.
cmdтакже может быть назван по-разному, единственное, что имеет значение, — это значение этого ключа (это текст, отображаемый в контекстном меню) и ключ command, значение которого будет выполнено. По-видимому, достаточно использовать его cmd.exeв качестве команды; командная строка автоматически запускается в каталоге, по которому вы щелкнули правой кнопкой мыши, никаких дополнительных параметров не требуется (по крайней мере, в Win 7 Enterprise, которую я использую).

Я не особо знаком со скриптами редактирования реестра, поэтому я сделал это вручную. Если кто-то знает, как сформулировать вышеприведенную информацию в скрипте, не стесняйтесь редактировать ее в этом ответе.

Бонус: если вы добавите строковый ключ cmd(или как вы его назовете) под названием «Иконка» и установите значение «cmd.exe», ваш пункт контекстного меню также будет сопровождаться иконкой.

Посмотрите на эти изображения, чтобы увидеть, как должен выглядеть ваш реестр после выполнения вышеуказанных шагов (как уже упоминалось, LibraryFolderявляется дочерним по отношению к HKEY_CURRENT_USER\Software\Classes):

введите описание изображения здесь

введите описание изображения здесь

Связанный контент