Tworzenie elementu menu kontekstowego powłoki systemu Windows, który przyjmuje jako argument pojedynczy plik, jest łatwe. Zobacz to pytanie jako przykład.
Jak jednak utworzyć element menu kontekstowego, który przyjmuje wiele plików jako argumenty? Powiedzmy, dla narzędzia scalania różnic (w moim przypadku P4Merge), chociaż ta sama technika bez wątpienia miałaby zastosowanie również do innych aplikacji.
Zainstalowałem P4Merge, ale nie dodaje on automatycznie pozycji do menu kontekstowego, więc będę musiał to zrobić ręcznie.
Kiedy próbowałem użyć:
"C:\Program Files\Perforce\p4merge.exe" %1 %2
jako wiersz polecenia dostałem błąd:
Błędy: potrzebne są co najmniej dwa pliki. Nie można otworzyć tylko jednego pliku. P4Merge potrzebuje 0, 2 lub 3 plików.
Kiedy próbowałem użyć:
"C:\Program Files\Perforce\p4merge.exe" %0 %1
jako wiersz poleceń otworzył dwie instancje P4Merge, po jednej dla każdego pliku.
Wygląda na to, że prawidłowe nazwy plików są przekazywane do% 0 i% 1, ale dla każdego z nich wykonywana jest inna instancja aplikacji P4Merge.
Obecnie mam narzędzie DiffMerge firmy SourceGear, które ma element w menu kontekstowym powłoki i działa pięknie, ponieważ jestem w stanie wybrać dwa pliki i użyć elementu menu kontekstowego, aby uruchomić na nich różnicę. Próbuję przeszukać rejestr, aby zobaczyć, jakich argumentów używa DiffMerge, ale nie mogłem znaleźć wiersza polecenia DiffMerge zawierającego argumenty.