Kann das Eingabeaufforderungsäquivalent eines Kontextmenüelements leicht gefunden werden?

475
ETL

Zum Beispiel hat Comodo Internet Security meinem Kontextmenü zwei Elemente hinzugefügt: "Scannen mit Comodo" und "In Comodo Container ausführen". Ich möchte nicht, dass beide beide mein Kontextmenü verstopfen. Ich werde den Scan niemals verwenden (ich ziehe Kaspersky für das Scannen von Dateien vor), und ich verwende selten den virtuellen Desktop. Was ich gerne tun würde, ist sie über die Registrierung zu deaktivieren (was ich weiß, wie zu tun ist), ABER fügen Sie dann einen Eintrag für "In Comodo Container ausführen" in mein Send-To-Menü. Ich weiß bereits, wie Sie solche Elemente hinzufügen, indem Sie eine Verknüpfung mit Eingabeaufforderungsargumenten in der Shell: sendto erstellen. Ich kann jedoch nicht herausfinden, was diese Argumente sein sollten, damit sie dieselbe Funktion wie der ursprüngliche Comodo-Kontextmenüpunkt erfüllen.

Weiß jemand, ob es eine einfache Möglichkeit gibt, das cmd-Äquivalent eines durch eine Anwendung erstellten Kontextmenüelements zu ermitteln? Ich möchte dies in der Lage sein, dies für mehrere verschiedene Apps zu tun, nicht nur für Comodo. Ich weiß nicht, ob es einen universellen Weg gibt, um Registry-Humbo-Jumbo im Wesentlichen in verständlichen Cmd-Code zu übersetzen, aber Google hat nichts gefunden. Weiß jemand, ob das möglich ist?

3
Du fragst also nach zwei Sachen, richtig? Sie sagen "* Deaktivieren Sie sie über die Registrierung (was ich weiß, wie zu tun ist), ABER fügen Sie dann einen Eintrag für" In Comodo-Container ausführen "in mein Send-To-Menü *", so dass Sie zwei Dinge verlangen? Überlegen Sie, ob Sie das Fragenformat ein wenig bearbeiten, um zu klären, falls jemand verwirrt wird - Sie können es tun !! Pimp Juice IT vor 5 Jahren 1

1 Antwort auf die Frage

2
Ben N

Dies kann schwierig werden, da es mehrere Stellen und Methoden gibt, um ein Kontextmenüelement hinzuzufügen.

HKEY_CLASSES_ROOTin der Registry enthält unter anderem Kontextmenüelemente und Shell-Erweiterungsregistrierungen. Einige Unterschlüssel dieses Bienenstocks repräsentieren Arten von Objekten, die Sie im Explorer sehen. Möglicherweise müssen Sie herumstochern, um zu ermitteln, wo genau Ihr Menüelement registriert ist. Besonders interessante Schlüssel sind:

  • * gilt für alle Dateien
  • Directory gilt für alle Verzeichnisse, wenn Sie mit der rechten Maustaste auf ein Ordnerelement klicken
  • Der BackgroundUnterschlüssel von Directorygilt für alle Verzeichnisse, wenn Sie mit der rechten Maustaste im Hintergrund des aktuellen Ordners klicken
  • exefile gilt für Anwendungen (EXE-Dateien)

Einige dieser Unterschlüssel haben einen shellUnterschlüssel, der Unterschlüssel für Shell-spezifische Registrierungen enthält. Registrierungen mit einem commandUnterschlüssel repräsentieren Kontextmenüelemente. Auf meinem System haben AC3-Dateien beispielsweise ein Kontextmenüelement "Mit VLC Media Player abspielen", das aus diesem Zweig stammt:

HKEY_CLASSES_ROOT Subkey: ac3file Subkey: shell Subkey: PlayWithVLC Default value: Play with VLC media player Subkey: command Default value: "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --started-from-file --no-playlist-enqueue "%1" 

Der Standardwert des commandUnterschlüssels ist die Befehlszeile, die aufgerufen wird, wenn auf das Element geklickt wird. %1wird durch die Datei / das Verzeichnis ersetzt, in dem das Element verwendet wurde. Relevanter HowToGeek-Artikel.

Leider haben einige keine Befehlszeile und werden stattdessen durch COM-Objekte ausgeführt. Einige Kontextmenüelemente haben überhaupt keine bestimmten Registry-Einträge und werden stattdessen dynamisch von Shell-Erweiterungen hinzugefügt. Relevante Shell-Erweiterungen befinden sich unter dem shellex\ContextMenuHandlersZweig des Dateitypschlüssels anstelle von shell. Wenn Sie durch Klicken auf solche Elemente einen neuen Prozess erzeugen, können Sie möglicherweise mithilfe von Process Explorer die verwendete Befehlszeile sehen - einfach mit der Maus über einen Prozess. Wenn nicht, ist es möglicherweise nicht möglich, den Menüpunkt mit der Befehlszeile zu emulieren.

`HKEY_CLASSES_ROOT` entspricht auch der Registrierung von 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes`. Einige Befehlszeilenbeispiele: [VLC-Befehle] (https://wiki.videolan.org/VLC_command-line_help), [Firefox-Befehle] (https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options) , [Chromium-Befehle] (https://www.chromium.org/developers/how-tos/run-chromium-with-flags). Biswapriyo vor 5 Jahren 0