
Ich möchte in Windows 7 eine Kontextmenüoption für die rechte Maustaste erstellen, die kontextsensitiv ist und den Namen der jeweiligen Datei/des jeweiligen Ordners an ein Shell-Skript übergeben kann.
Ich weiß, dass dies möglich sein muss. Wenn Sie beispielsweise eine 7zip-Datei haben, können Sie mit der rechten Maustaste darauf klicken und dann „Hier extrahieren“ sagen, und irgendwie wird das Ziel (das .7z-Archiv) an das 7zip-Programm übergeben.
Insbesondere habe ich ein Skript, das eine .c-Datei nimmt, sie in eine LaTeX-Liste einfügt und pdflatex ausführt, um gut formatierte Dateien zum Lesen zu erstellen. Allerdings muss ich die Datei als Befehlszeilenargument angeben. Ich möchte es so einrichten, dass ich mit der rechten Maustaste auf eine Datei klicken und dieses Skript automatisch ausführen kann, wobei der Pfad des Rechtsklickziels automatisch an das Befehlszeilenargument übergeben wird.
Antwort1
Willkommen bei SuperUser!
Hierzu ist eine Bearbeitung der Registrierung erforderlich und es hängt davon ab, ob Sie dieses Element für alle Dateien, nur für Dateien mit einer bestimmten Erweiterung, für Ordner oder für beides hinzufügen möchten.
Öffnen Sie Ihren Registrierungseditor und navigieren Sie zu HKEY_CLASSES_ROOT
. Sie werden hier eine Reihe von Dateierweiterungen sehen - diese steuern das Kontextmenü.
Das Hinzufügen eines Handlers erfolgt immer auf die gleiche Weise, unabhängig davon, wo Sie das Menüelement anhängen. Wichtig ist lediglich, wo in der Registrierung Sie es platzieren.
Der Ablauf ist wie folgt:
- Erstellen Sie einen neuen Schlüssel unter dem
shell
Schlüssel des Elements, das Sie hinzufügen. - Wenn Sie möchten, dass dieses Menüelement ein Symbol hat, fügen Sie
Icon
dem soeben erstellten Schlüssel eine Zeichenfolge mit dem Namen und einem Pfad zum Symbol als Wert hinzu. - Hinzufügen eines Schlüsselsunterdas von Ihnen erstellte Element mit dem Namen
command
- Ändern Sie den Eintrag (Standard) unter diesem Schlüssel, sodass er auf das Skript verweist, das Sie öffnen möchten, und fügen Sie an
"%1"
der Stelle in der Befehlszeile des Programms ein .in. ein hinzu, an der der an das Programm übergebene Dateiname stehen soll.
Wo soll dieser neue Menüpunkt hin? Wenn Sie möchten, dass er angezeigt wird...
- Fügen Sie für alle Dateien einer bestimmten Erweiterung diese unter den passenden Erweiterungsschlüssel ein (Sie können einen erstellen, falls noch keiner vorhanden ist).
- für alle Dateien überall, legen Sie es unter den
*
Schlüssel - Legen Sie es für alle Verzeichnisse unter den
Directory
Schlüssel.