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.