Membuat item menu konteks Windows Shell yang menggunakan satu file sebagai argumen adalah mudah. Lihat pertanyaan ini sebagai contoh.
Namun, bagaimana Anda membuat item menu konteks yang mengambil banyak file sebagai argumen? Katakanlah, untuk alat diff-merge (dalam kasus saya P4Merge), meskipun teknik yang sama tidak diragukan lagi berlaku untuk aplikasi lain juga.
Saya telah menginstal P4Merge tetapi tidak menambahkan item ke menu konteks secara otomatis sehingga saya harus melakukannya secara manual.
Ketika saya mencoba menggunakan:
"C:\Program Files\Perforce\p4merge.exe" %1 %2
sebagai baris perintah saya mendapat kesalahan:
Kesalahan: Setidaknya diperlukan dua file. Tidak dapat membuka hanya satu file. P4Merge membutuhkan 0, 2, atau 3 file.
Ketika saya mencoba menggunakan:
"C:\Program Files\Perforce\p4merge.exe" %0 %1
ketika baris perintah membuka dua instance P4Merge, satu untuk setiap file.
Tampaknya nama file yang benar sedang diteruskan ke% 0 dan% 1 tetapi contoh berbeda dari aplikasi P4Merge sedang dieksekusi untuk masing-masing.
Saat ini saya memiliki alat DiffMerge SourceGear yang memiliki item pada menu konteks Shell dan itu berfungsi dengan baik, karena saya dapat memilih dua file dan menggunakan item menu konteks untuk menjalankan diff pada mereka. Saya sudah mencoba mencari registri untuk melihat argumen apa yang digunakan DiffMerge tetapi saya tidak dapat menemukan commandline DiffMerge yang menyertakan argumen.
sumber
Jawaban:
Anda juga dapat mencoba menambahkan program ke menu SendTo.
sumber
Menjelajahi jawaban tampaknya tidak ada perbaikan sederhana dan ekstensi shell diperlukan. Melihat lagi entri registri untuk DiffMerge, tampaknya menggunakan ekstensi shell: DiffMergeShellExtension64.dll. Jika P4Merge tidak memiliki ekstensi shell seperti itu maka sepertinya satu-satunya cara saya dapat membuatnya bekerja dengan benar dalam menu konteks Windows Explorer adalah dengan menulis sendiri.
Panduan Lengkap Idiot untuk Menulis Ekstensi Ekstensi Shell dalam Proyek Kode adalah panduan yang berguna untuk menulis ekstensi shell. Bagian II dari seri ini adalah tentang menulis ekstensi yang menangani banyak file sekaligus (persis apa yang saya butuhkan).
Peringatan: Panduan Lengkap Idiot untuk Menulis Ekstensi Shell menggunakan C dan COM, ATL (Perpustakaan Templat Aktif) dan MFC (Kelas Yayasan Microsoft). Jadi, menulis ekstensi shell, jika Anda tidak terbiasa dengan teknologi itu, akan menjadi proses yang panjang dan berpotensi sulit; itu jelas bukan sesuatu yang dapat Anda lakukan dalam satu jam.
sumber
Anda dapat melakukannya dengan launcher menu konteks- program (singleinstance) program saya :
sumber
.exe
file dalam jawaban Anda tanpa membuatnya jelas bahwa unduhan otomatis akan dimulai.