So fügen Sie ein Kontextmenü in Windows 7-Bibliotheksordnern hinzu

So fügen Sie ein Kontextmenü in Windows 7-Bibliotheksordnern hinzu

Ich habe gerade die Einrichtung meiner Entwicklungsumgebung auf einem Windows 7-PC abgeschlossen. Für die Verwendung von Befehlszeile und Terminal habe ich das Programm namens Console2 installiert, das für jeden, der das Terminal auf einem Windows-Rechner verwendet, großartig ist.

Eines der wichtigsten Dinge, die ich brauchte, war die Möglichkeit, schnell auf Ordner im Terminal zuzugreifen, ohne cd /directroy/name/etc/etcdies immer tun zu müssen. Mein Ziel war ein Kontextmenü, das per Rechtsklick innerhalb eines Ordners im Explorer aufgerufen werden kann.

Ich konnte dies mit den folgenden Änderungen/Ergänzungen des Registrierungsschlüssels erreichen

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

Es funktioniert großartig, ich kann jetzt ein Kontextmenü sehen, um auf zwei Arten ein Terminalfenster im Pfad eines Ordners zu öffnen.

  1. Wenn Sie mit der rechten Maustaste auf einen Ordnernamen klicken, wird die Meldung „Konsole2 hier öffnen“ angezeigt.
  2. Wenn ich einen Ordner öffne und im Hintergrund mit der rechten Maustaste klicke, wird mir dasselbe Kontextmenü angezeigt, um auch das Terminal zu öffnen.

Jetzt besteht mein Problem darin, dass ich häufig über Windows-Bibliotheken auf Ordner und Arbeitsbereiche zugreife. Dadurch funktioniert mein Kontextmenü nicht, wenn ich über die Bibliothek auf einen Ordner zugreife, anstatt direkt zu dem Ordner zu gehen.

Wenn ich beispielsweise den Explorer öffne und zu ... gehe,

E:\Server\htdocs\labs\javascript\SampleJSProjectdann kann ich mein benutzerdefiniertes Kontextmenü anzeigen und verwenden.

Wenn ich jedoch über meine Verknüpfung/Bibliotheken auf denselben Ordner zugreife, sieht der Pfad folgendermaßen aus ...

Libaries\Server Labs\javascript\SampleJSProjectund jetzt wird mein Kontextmenü zum Öffnen des Terminals nicht angezeigt. Wenn ich in den Adressbereich klicke, wird jedoch der korrekte vollständige Pfad wie oben aufgeführt angezeigt.

Ich hoffe, dass es eine einfache Lösung ist, wie etwa das Hinzufügen eines weiteren Registrierungsschlüssels irgendwo, aber ich bin nicht sicher, wo?

Hat jemand Ideen oder Lösungen?

Antwort1

Der Trick dabei ist, dass Bibliotheksordner einen eigenen Schlüssel haben.

Seltsamerweise ist es „LibraryFolders“, Sie müssten also DIESEN Schlüssel ändern, um den gewünschten Effekt zu erzielen.

Um beispielsweise den Kontexteintrag „Eingabeaufforderung hier öffnen“ zu einem Bibliotheksordner hinzuzufügen, verwenden Sie das folgende Register:

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

-(e)

Antwort2

Um weiter darauf einzugehensweetlilmres Antwort:

Wenn Sie keine Rechte zum Bearbeiten haben HKEY_CLASSES_ROOT(ein Problem, das bei mir auf meinem Firmenlaptop auftrat), können Sie auch bearbeiten HKEY_CURRENT_USER\Software\Classes\LibraryFolder\Background\shell\cmd\command.
Möglicherweise müssen Sie LibraryFolderund dessen Unterschlüssel erstellen (ich musste das), aber es reicht, leere Schlüssel zu erstellen.
cmdkann auch anders benannt werden, wichtig ist nur der Wert dieses Schlüssels (das ist der im Kontextmenü angezeigte Text) und der commandSchlüssel, dessen Wert ausgeführt wird. Es reicht anscheinend aus, cmd.exeals Befehl zu verwenden; die Befehlszeile startet automatisch in dem Verzeichnis, in das Sie mit der rechten Maustaste geklickt haben, keine zusätzlichen Parameter erforderlich (zumindest unter Win 7 Enterprise, das ich verwende).

Ich bin nicht besonders vertraut mit Skripten zum Bearbeiten der Registrierung, also habe ich das manuell gemacht. Wenn jemand weiß, wie man die obigen Informationen in einem Skript formuliert, kann er sie gerne in diese Antwort einfügen.

Bonus: Wenn Sie einen String-Schlüssel cmd(oder wie auch immer Sie ihn nennen) mit dem Namen „Icon“ hinzufügen und auf „cmd.exe“ einstellen, wird Ihr Kontextmenüeintrag auch von einem Symbol begleitet.

In den folgenden Abbildungen sehen Sie, wie Ihre Registrierung nach den obigen Schritten aussehen sollte (wie erwähnt LibraryFolderhandelt es sich um ein untergeordnetes Element von HKEY_CURRENT_USER\Software\Classes):

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

verwandte Informationen