Jak dodać menu kontekstowe w folderach bibliotek systemu Windows 7

7

Właśnie skończyłem konfigurować środowisko programistyczne na komputerze z systemem Windows 7. Do obsługi wiersza poleceń i terminala zainstalowałem program o nazwie Console2, który jest niesamowity dla każdego, kto używa terminala na komputerze z systemem Windows.

Jedną z ważnych rzeczy, których potrzebowałem, była możliwość szybkiego dostępu do folderów w terminalu, bez konieczności robienia cd /directroy/name/etc/etctego zawsze, dlatego moim celem było menu kontekstowe w folderze Eksploratora prawym przyciskiem myszy.

Udało mi się to zrobić za pomocą następujących modyfikacji / uzupełnień klucza rejestru

[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"

Działa świetnie, teraz widzę menu kontekstowe, aby otworzyć okno terminala na ścieżce folderu na 2 sposoby.

  1. Kliknięcie prawym przyciskiem myszy nazwy folderu spowoduje wyświetlenie komunikatu „Otwórz konsolę 2 tutaj”
  2. Otwierając folder i klikając prawym przyciskiem myszy w tle, widzę to samo menu kontekstowe, aby również otworzyć terminal.

Teraz mój problem polega na tym, że często uzyskuję dostęp do folderów i obszarów roboczych za pomocą bibliotek systemu Windows, co powoduje, że moje menu kontekstowe nie działa, gdy uzyskuję dostęp do folderu przez bibliotekę, zamiast przechodzić bezpośrednio do folderu.

Na przykład, jeśli otworzę Eksploratora i przejdę do ...

E:\Server\htdocs\labs\javascript\SampleJSProject wtedy mogę wyświetlić i korzystać z niestandardowego menu kontekstowego.

Jednak jeśli uzyskam dostęp do tego samego folderu za pomocą mojego skrótu / bibliotek, ścieżka wygląda następująco ...

Libaries\Server Labs\javascript\SampleJSProjecta teraz moje menu kontekstowe do otwarcia terminala się nie wyświetla. Jeśli kliknę w obszarze Adres, wyświetli się poprawna pełna ścieżka, jak wymieniono powyżej.

Mam nadzieję, że jest to łatwe rozwiązanie, takie jak dodanie gdzieś innego klucza rejestru, ale nie jestem pewien, gdzie?

Czy ktoś ma jakieś pomysły lub rozwiązania?

JasonDavis
źródło
Możesz kliknąć prawym przyciskiem myszy> Otwórz lokalizację folderu przed otwarciem konsoli. Rodzaj tymczasowego rozwiązania, ale działa.
Sam

Odpowiedzi:

9

Sztuczka polega na tym, że foldery biblioteczne mają swój własny klucz.

Co dziwne, jego „LibraryFolders” trzeba zmodyfikować KLUCZ, aby uzyskać pożądany efekt.

Na przykład, aby dodać pozycję kontekstową „Otwórz okno poleceń tutaj” do folderu biblioteki, użyj następującego rejestru:

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\""

HTH

-(mi)

kochanie
źródło
3
Długo szukałem tej funkcjonalności, dziękuję za udostępnienie!
JasonDavis
1
Niesamowite ... cały czas przyczyną tego, że nie działało, było to, że Eksplorator traktował foldery biblioteczne inaczej. Dzięki za to!
Taliesin
@jondondavis proszę zaznaczyć odpowiedź jako poprawną, jeśli zadziałała dla Ciebie.
sweetlilmre,
0

Aby rozwinąć odpowiedź sweetlilmre :

Jeśli nie masz uprawnień do edycji HKEY_CLASSES_ROOT(problem, który pojawił się na moim laptopie firmowym), możesz także edytować HKEY_CURRENT_USER\Software\Classes\LibraryFolder\Background\shell\cmd\command.
Być może trzeba utworzyć LibraryFolderi jego podklucze (musiałem), ale wystarczy stworzyć puste klucze.
cmdmożna również nazwać inaczej, jedyną rzeczą, która ma znaczenie, jest wartość tego klucza (czyli tekst wyświetlany w menu kontekstowym) i commandklucz, którego wartość zostanie wykonana. Najwyraźniej wystarczy użyć cmd.exejako polecenia; wiersz poleceń automatycznie uruchamia się w katalogu, w którym kliknięto prawym przyciskiem myszy, nie są wymagane żadne dodatkowe parametry (przynajmniej w Win 7 Enterprise, którego używam).

Nie jestem szczególnie zaznajomiony ze skryptami do edycji rejestru, więc zrobiłem to ręcznie. Jeśli ktoś wie, jak sformułować powyższe informacje w skrypcie, możesz je edytować w tej odpowiedzi.

Premia: jeśli dodasz klucz łańcucha cmd(lub jakkolwiek go nazwałeś) o nazwie „Ikona” i ustawisz na „cmd.exe”, pozycji menu kontekstowego będzie również towarzyszyć ikona.

Zobacz te obrazy, jak powinien wyglądać rejestr po wykonaniu powyższych kroków (jak wspomniano, LibraryFolderjest dzieckiem HKEY_CURRENT_USER\Software\Classes):

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

PixelMaster
źródło