Das Erstellen eines Windows Shell-Kontextmenüelements, das eine einzelne Datei als Argument verwendet, ist einfach. In dieser Frage finden Sie ein Beispiel.
Wie erstellen Sie jedoch ein Kontextmenüelement, das mehrere Dateien als Argumente verwendet? Angenommen, für ein Diff-Merge-Tool (in meinem Fall P4Merge), obwohl die gleiche Technik zweifellos auch für andere Anwendungen anwendbar wäre.
Ich habe P4Merge installiert, aber es fügt dem Kontextmenü nicht automatisch ein Element hinzu, sodass ich es manuell ausführen muss.
Als ich versuchte:
"C:\Program Files\Perforce\p4merge.exe" %1 %2
Als Kommandozeile habe ich eine Fehlermeldung erhalten:
Fehler: Es werden mindestens zwei Dateien benötigt. Es kann nicht nur eine Datei geöffnet werden. P4Merge benötigt 0, 2 oder 3 Dateien.
Als ich versuchte:
"C:\Program Files\Perforce\p4merge.exe" %0 %1
Als Befehlszeile wurden zwei Instanzen von P4Merge geöffnet, eine für jede Datei.
Es scheint, dass die richtigen Dateinamen an% 0 und% 1 übergeben werden, aber für jede wird eine andere Instanz der P4Merge-Anwendung ausgeführt.
Ich habe derzeit das DiffMerge-Tool von SourceGear, das ein Element im Shell-Kontextmenü enthält und das hervorragend funktioniert, da ich zwei Dateien auswählen und das Kontextmenüelement verwenden kann, um ein Diff für sie auszuführen. Ich habe versucht, die Registrierung zu durchsuchen, um festzustellen, welche Argumente DiffMerge verwendet, aber ich konnte keine DiffMerge-Befehlszeile finden, die Argumente enthielt.
quelle
Antworten:
Sie können auch versuchen, das Programm zum SendTo-Menü hinzuzufügen.
quelle
Beim Durchsuchen nach der Antwort scheint es keine einfache Lösung zu geben und dass eine Shell-Erweiterung erforderlich ist. Bei erneuter Betrachtung der Registrierungseinträge für DiffMerge wird anscheinend eine Shell-Erweiterung verwendet: DiffMergeShellExtension64.dll. Wenn P4Merge nicht über eine solche Shell-Erweiterung verfügt, kann ich sie nur im Windows Explorer-Kontextmenü ordnungsgemäß ausführen, indem ich selbst eine schreibe.
Der vollständige Leitfaden für Idioten zum Schreiben von Shell-Erweiterungen in Code Project ist ein nützlicher Leitfaden zum Schreiben von Shell-Erweiterungen. In Teil II der Serie geht es darum, eine Erweiterung zu schreiben, die mehrere Dateien gleichzeitig verarbeitet (genau das, was ich brauche).
Warnung: Das vollständige Handbuch für Idioten zum Schreiben von Shell-Erweiterungen verwendet C und COM, ATL (Active Template Library) und MFC (Microsoft Foundation Classes). Das Schreiben einer Shell-Erweiterung ist also ein langer und möglicherweise schwieriger Prozess, wenn Sie mit diesen Technologien nicht vertraut sind. Es ist definitiv nicht etwas, was Sie in einer Stunde tun können.
quelle
Sie können dies mit meinem Programm Kontext-Menü-Launcher (Singleinstance) tun :
quelle
.exe
Dateien in Ihren Antworten, ohne klar zu machen, dass ein automatischer Download startet.