3. parti araçları olmadan yapabileceğiniz en iyi şey muhtemelen PIMP_JUICE_IT'in cevabı olduğu için cevabımda bir çözüm önermeyeceğim (bu cevabı sadece yeni bir tamamlayıcı fiil eklemek olmasına rağmen ve bunun Windows ile ilgisi yok " "işlevsellik ve buna göre adlandırılmalı).
Bununla birlikte, neler olup bittiğiyle ilgili teknik ayrıntıları açıklamaya çalışacağım:
"Birlikte Aç" alt menüsü IContextMenu kabuk uzantısı olarak uygulanır ve altında kaydedilir HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers
. Bir kabuk klasöründeki bir veya daha fazla öğeye sağ tıkladığınızda kabuk HKEY_CLASSES_ROOT
, menüyü oluşturmak için altındaki çeşitli tuşlara bakar . Altındaki girişler ...\shellex\ContextMenuHandlers
dinamiktir ve kaç tane menü öğesi ekleneceğini (varsa) belirleyen gerçek bilgisayar kodunu yürütür.
Microsoft, tek bir istisna dışında yalnızca bir dosyayı seçtiğinizde alt menüyü eklemek için "Birlikte Aç" uzantısını kodlamış gibi görünüyor; Birden çok kısayol (.lnk) seçilebilir ve alt menüyü yine de alırsınız (en azından Windows 8 makinemde). Bir uzuv üzerinde dışarı çıkacağım ve kısayol işlemenin bir hata olduğunu söyleyeceğim.
Menünün birden fazla dosya için çalışamamasının teknik bir nedeni yoktur ve aslında Windows XP'de gayet iyi çalışır:
Sanırım çıkardıkları asıl nedenin; Kullanıcı farklı türdeki dosyaları seçtiğinde ne yaparsın? Ancak, bunun için bir emsal zaten var; farklı türdeki dosyaları seçebilir ve tümünü açmak için enter tuşuna basabilirsiniz. Bunu yaptığınızda, kabuk yalnızca odak dikdörtgeni olan öğeyle ilişkili eylemi kullanır.
Bir üçüncü taraf yazılım satıcısının birden fazla dosya için çalışan benzer bir menü oluşturması mümkün olabilir. Tek kısıtlama, menünün altındaki "Başka bir uygulama seç" / "Varsayılan programı seç" öğesinin, birden fazla dosya olduğunda muhtemelen devre dışı bırakılması gerektiğidir, çünkü bu iletişim kutusunu çağırmanın resmi yolu yalnızca tek bir dosya yolunu destekler. Menüyü doldurmak için, SHAssocEnumHandlers öğesini , belirtilen dosya türünde kullanılabilen uygulamaların bir listesini oluşturmak için kullanır .
Teknik olarak mümkün olsa bile, hiç kimsenin birden fazla dosyayı desteklemek için "Birlikte Aç" uzantısını yeniden uygulamak için zaman harcamamış olduğu böyle bir durum.