Windows neden simge kaplamalarını 15 ile sınırlandırıyor?


27

Dropbox vs TortoiseSVN ve diğer birçok uygulama simgesi bindirme çakışmaları hakkındaki sonsuz soruları görebiliriz.

İki örnek:
Neden Win8 Explorer'da Icon Overlays (3rdParty-Apps'ten) görünmüyor?
Kaplama simgelerinin değişmesini önleyebilir miyim?

Benim durumumda sadece Dropbox ve TortoiseSVN var. Dropbox gerçekten can sıkıcı hale geliyor - her güncellemeden sonra, Dropbox'ın katmanlarını kayıt defterinden silen ve ardından Windows Gezgini'ni yeniden başlatan bir komut dosyası çalıştırmam gerekiyor.

Windows'un performans nedeniyle muhtemelen bindirmeleri 15 ile sınırlandırdığını biliyorum.
Ancak, 25 ~ 35'e yükselmek büyük bir performans etkisine neden olur mu?
Microsoft neden henüz bunun çok popüler bir sorun olduğunu farketmedi ve bunun için bir düzeltme yapmaya çalıştı?
Neden, en azından ileri düzey kullanıcıların bu sınırı arttırmak için değiştirebilecekleri bir seçenek yok?


Bir süre önce bu Microsoft'a sordum ve neden "mükemmel sorunlar" dediler. Sınırı artırmıyorlar, aynı zamanda onları tamamen öldürmek için planları var.
magicandre1981

1
Bu sadece performans değil. Mevcut uygulamada, maksimum 15 kaplama sağlayan kaplama endeksini tanımlayan bir yapıda 4 bit bulunmaktadır. Bu sayıyı artırmak için gereken daha önemli bitler başka bir amaç için kullanılır. Daha fazla bindirme simgesi elde etmenin tek yolu, uygulamayı değiştirmek ve bunun önemli uyumluluk sonuçları doğurmak olacaktır. Mevcut uygulamaya dayanan ve değiştirildiyse kırılacak çok sayıda uygulama (tüm kuralları takip eden iyi yazılmış uygulamalar) vardır.
LMiller7

Yanıtlar:


24

Benim durumumda sadece Dropbox ve TortoiseSVN var. Dropbox gerçekten can sıkıcı hale geliyor - her güncellemeden sonra, Dropbox'ın katmanlarını kayıt defterinden silen ve ardından Windows Gezgini'ni yeniden başlatan bir komut dosyası çalıştırmam gerekiyor.

Kullanılmayan kaplamaları aşağıdaki konumdan kaldırın:

  • KEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ShellIcon OverlayIdentifiers

  • KEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ explor er \ ShellIconOverlayIdentifiers

Kaynak: Neden Win8 Explorer'da Icon Overlays (3rdParty-Apps'ten) görünmüyor?

25 ~ 35'e yükseltmek büyük bir performans etkisine neden olur mu?

Mevcut limit değiştirilemediğinden, limit artırıldıysa ne tür bir performans etkisinin olacağını tahmin etmemiz mümkün değildir.

Microsoft neden henüz bunun çok popüler bir sorun olduğunu farketmedi ve bunun için bir düzeltme yapmaya çalıştı?

Sanırım daha az insanı etkilediğini sanıyorsun. Sadece Windows Kabuk ekibinden biri bu cevabı bilebilirdi. Microsoft karar kararlarını bildirinceye kadar, yalnızca hiç kimsenin limiti arttırmadığı konusunda eğitimli tahminler yapabiliriz.

Neden, en azından ileri düzey kullanıcıların bu sınırı arttırmak için değiştirebilecekleri bir seçenek yok?

Sadece Windows Kabuk ekibinden biri bu cevabı bilebilirdi. Microsoft karar kararlarını bildirinceye kadar, yalnızca eğitimli tahminler yapabiliriz; bu temelde hiç kimsenin limiti yükseltmemize izin vermek için kodu yazmadığı anlamına gelir.

Microsoft Geliştirici Raymond Chen, simge bindirmeleri hakkında şunları söyledi:

Genel olarak konuşmak gerekirse, bindirmeler bilgi sunmanın iyi bir yolu değildir, çünkü simge başına yalnızca bir bindirme olabilir ve ImageList'te 15 bindirme sınırı vardır. Bir öğeye uygulanan iki veya daha fazla kaplama varsa, biri kazanacak ve diğerleri kaybedecek, bu noktada, bir nesneye hangi özelliklerin uygulanacağının belirlenmesinin bir yolu olarak kaplamanın değeri, emin olmanın tek yolundan bu yana azalır. hiç bir yer paylaşımının olmadığını gördüğünüzde bir özelliğin eksik olması. (Başka bir yer paylaşımı görüyorsanız, mülkünüzün eksik olduğu veya sizin yerinize başka yer paylaşımı gösterdiği için bunun ne olduğunu söyleyemezsiniz.)

Bay Chen ayrıca şunları söyledi:

Bencil bir performans görüşüne sahip uygulamalara başka bir örnek, bir simge bindirme işleyicisi geliştiren bir şirketten geldi. Kabuk, bindirme hesaplamasını düşük öncelikli bir öğe olarak ele alır, çünkü ekran üzerinde simgeler almak daha önemlidir, böylece kullanıcı ne yapmak istiyorsa onu yapmaya başlayabilir. Süslemeler daha sonra gelebilir. Bu şirket, performanslarını arttırmanın ve ikon ortaya çıkmadan önce ekrana bindirmenin bir yolu olup olmadığını bilmek istedi ve "performansın" olağanüstü bencil bir yorumunu gösterdi.

Kaynak: Bu küçük bindirme simgeleri nelerdir: Windows 7 sürümü


3

Raymond Chen'den konuyla ilgili yeni bir blog yazısı var: Neden 15 tane kabuk simgesi kaplaması var? Bu daha da fazla ayrıntıya girer, ancak kısa versiyon şudur: Sebepler eski versiyonlar ve API'ler ile uyumluluktur, performans sorunları ve ikon bindirmelerinin şu günlerde önerilmemesi gerçeği:

Temel olarak “Çok iş olur ve tembelleşiriz”.

ve ayrıca:

Ancak bunun gerçekleşmemesinin ana nedeni, kaplamaların kullanıcıya bir dosya hakkında meta veri aktarma yolu olarak önerilmemesidir .

ve:

Windows 10, OneDrive dosya senkronizasyonu durum göstergesini bir simge katmanından ayrı bir Durum sütununa taşıyarak simge kaplamalarından bir adım öteye geçer.


Evet! OneDrive'ın farklı yaptığını ve hatta "yalnızca çevrimiçi" olan dosyaları gösterebileceğini fark ettim. Daha fazla esneklik veren çok havalı bir özellik. Bilgi için çok teşekkür ederim.
Nuno

1

Ayrıca bir yanılgıyı düzeltmek istiyorum. Evet, ayrılan toplam 15 simge var, AMA Windows Sistem kendisi için 4 ayırdığı için aslında 11 bindirme ikonu mevcut, yani diğer programlar için 11 ikonu etkin. (15-4 = 11). Bu resmi Microsoft destek web sitesine göre ( arşivlenmiş URL )

Sistemin destekleyebileceği simge kaplama işleyicilerinin sayısı, sistem resim listesindeki simge kaplamaları için kullanılabilir alan miktarı ile sınırlıdır. Halen, 4'ü sistem tarafından ayrılan ikon bindirmeleri için tahsis edilmiş 15 slot bulunmaktadır. Sistemde kayıtlı 11'den fazla simge kaplama işleyicisi olduğunda, sistem resim listesine yalnızca simge kaplama işleyicileri tarafından sağlanan ilk 11 simge kaplama eklenir. Kalan simge kaplama işleyicileri kullanılmaz.

Kaynak: resmi Microsoft destek web sitesi ( arşivlenmiş URL )

PSA Bildirimi:

Ayrıca, yalnızca tüm kabuk simgesi kaplamalarını listelemek için ayrılmış bir Wikipedia sayfası tasarladım, böylece kullanıcılar hangilerinin Dropbox, OneDrive, Tortoise, vb. İçin kendileri için en yararlı olduğunu belirleyebilirler ...

Lütfen Wiki sayfamı kontrol edin ve lütfen katkıda bulunun:

https://en.wikipedia.org/wiki/List_of_Shell_Icon_Overlay_Identifiers


Bu harika, Adobe Creative Cloud simgesi kaplamalarını ekleyebilir misiniz? AccExtIco1, AccExtIco2, AccExtIco3
JamesHenare
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.