ShellIconOverlayIdentifiers - neden bu kadar az?


84

Bu noktada, herkes ShellIconOverlayIdentifiers(MSDN'den) sayısında bir sınır olduğunu bilir :

Sistemin destekleyebileceği farklı simge kaplama işleyicilerinin sayısı, sistem görüntüsü listesindeki simge kaplamaları için kullanılabilir alan miktarıyla sınırlıdır. Şu anda, bazıları sistem tarafından ayrılmış olan simge kaplamaları için ayrılmış on beş yuva bulunmaktadır. Bu nedenle, simge kaplama işleyicileri yalnızca tatmin edici alternatifler yoksa uygulanmalıdır.

Windows 95'teki 15 kaplama sınırını anlayabiliyorum. Ancak Gigs RAM, çok sayıda Çekirdek ve GPU'nun olduğu bir ortamda, modern bir işletim sisteminde bu kadar düşük bir sayının bazı teknik nedenleri var mı?

Ve bu değer neden yapılandırılamıyor?

'Performans' cevabını vermeden önce şunu göz önünde bulundurun: Windows, performansı öldürebileceğiniz şekilde yapılandırmaya izin verir ... Neden bu konuyu özellikle seçmelisiniz?


Bu neden "tortoisesvn" olarak etiketlendi? Bir şey mi kaçırıyorum?
Cody Grey

19
Tortoisesvn, simge aşırı sınırlamalarıyla uğraşırken en sık bahsedilen Uygulama olduğu için zeki olduğumu düşündüm - çoğunlukla mevcut yuvalarınızdan 9'unu aldığı için. Etiket kaldırıldı.
rbellamy

1
Sınırlamalar Windows 10'da hala aynıdır. Nedenini de bilmiyorum.
Gohan

Yanıtlar:


86

Burada biri Windows Kabuğu ekibinde çalışmadığı sürece, teknik sınırlamalara ve bunların tasarım seçimini nasıl etkilediğine gerçekten hitap eden bir yanıt alacağınızdan şüpheliyim. Ama deneyeceğim...

Benim tahminime göre teknik bir sınırlama yok ya da en azından şu anda yok. Bunun gerçek nedeni, muhtemelen hiç kimsenin bu sınırlamayı kaldırmak için oturup kodu, tasarımı ve spesifikasyonu güncellemek için zaman ayırmamış olmasıdır. Özellikler varsayılan olarak uygulanmaz ve yalnızca bilgisayar ortamının son birkaç yılda değişmiş olması, birinin oturup tüm bu değişikliklerden tam olarak yararlanmak için Windows'u yeniden yazdığı anlamına gelmez.

Bunun, empoze edilmiş bir sınırlamadan ziyade muhtemelen bilinçli bir tasarım seçimi olduğunu da düşünmelisiniz. (Aslında Raymond Chen yapar kabuk takımda işi) yayımlanmış bir blog yazısı "paylaşım eli" bindirme çıkarmadan Windows 7 hakkında kargaşa yanıt. Simge üst üste bindirmesinin bilgiyi göstermenin gerçekten arzu edilen bir yolu olmadığı konusunda ikna edici bir argüman yapıyor (sistemin 15 ile sınırlı olduğu gerçeğinin üstünde ve ötesinde) [vurgu eklenmiştir]:

Genel olarak konuşursak, üst üste bindirmeler bilgi sunmanın iyi bir yolu değildir çünkü simge başına yalnızca bir yer paylaşımı olabilir ve Görüntü Listesi başına 15 kaplama sınırı vardır. Bir öğe için geçerli olan iki veya daha fazla katman varsa, o zaman biri kazanır ve diğerleri kaybeder; bu noktada, bir öğe için hangi özelliklerin geçerli olduğunu belirlemenin bir yolu olarak katmanın değeri azalır, çünkü emin olmanın tek yolu bir özelliğin eksik olması, hiçbir kaplama görmediğiniz zamandır. (Başka bir yer paylaşımı görürseniz, mülkünüzün eksik olduğundan mı yoksa sizin yerine başka bir yer paylaşımının mı gösterildiğinden emin olamazsınız.)

Kabuğa eklenen fazladan karmaşanın gerçek dünyadaki vakaların çoğunda buna değmeyeceğini düşünüyorum. Windows Kabuğu ekibi açıkça aynı sonuca vardı ve "paylaşım eli" kaplamasını kesti. Raymond'un doğrudan açıklaması:

İnsanların bilgisayarları kullanma şeklindeki değişiklikler göz önüne alındığında, bilgi paylaşımı giderek daha fazla varsayılan durum haline geliyor. Bir Ev Grubu kurduğunuzda, hemen hemen her şey paylaşılacaktır. Görsel dağınıklığı gidermek için bilgiler Ayrıntılar bölmesine taşındı.

Ve özellikle performanstan bahsetmemenizi istediğini biliyorum, ancak Windows gerçekten de sizi ayağınıza vurmaktan alıkoymaya çalışıyor . Kullanıcılar kabukta duyarlılık talep ederler ve yer paylaşımlı simgeler buna müdahale edebilir. Bunlar bir başka kanıtı olarak öncelik değil , başka blog yazısı aynı Raymond Chen chastises tarafından:

Bencil bir performans görüşüne sahip başka bir uygulama örneği, bir simge kaplama işleyicisi geliştiren bir şirketten geldi. Kabuk, bindirme hesaplamasını düşük öncelikli bir öğe olarak ele alır, çünkü ekranda simgeler almak daha önemlidir, böylece kullanıcı yapmak istediği şeyi yapmaya başlayabilir. Süslemeler daha sonra gelebilir. Bu şirket, "performans" ın olağanüstü bencil bir yorumunu göstererek, performanslarını iyileştirmenin ve simge daha ortaya çıkmadan önce ekran üzerine yerleştirmenin bir yolu olup olmadığını öğrenmek istedi.


15
Mükemmel yanıt. Belki de daha iyi soru, "Bir dosyanın / klasörün durumunda aynı anlık görsel kuyruğu sunan simge kaplamalarına alternatif nedir?" Bana öyle geliyor ki, içerik türünü belirlemekten daha fazlasını yapmak için simgelerin kullanılması, Raymond Chen'in tam olarak bahsettiği nedenden ötürü - dosya konumu sınırlarının bulanıklaşmasıyla, DURUMLARDA - giderek daha önemli hale geliyor.
rbellamy

3
Bunun ne bilinçli bir tasarım seçimi ne de empoze edilen bir sınırlama değil, uzun zaman önce (Win 95 dolaylarında) alınan ve kurulu kullanıcı tabanı nedeniyle asla düzeltilemeyen saçma bir tasarım kararı olduğundan şüpheleniyorum. En aptalca karar, her bir kaplama uzantısının yalnızca bir simge katmanını destekleyebilmesi ve her dosya için kabuğun yalnızca "geçerli mi?" Bu gerektiğini her bindirme simgelerin bir dizi desteklediğini olmuştur ve her dosya için kabuk hangi uzatma tek seçenek olarak "Ben geçerli değildir" yanıt verebilir "hangi simge bindirme?" Diye soruyor.
Keith Robertson

9
MS'in ShellIconOverlayIdentifierskayıt defteri girdimi Win10'dan itibaren OneDrive crud ile bulandırarak bunu benimsemesi ilginç. TortoiseSVN / GIT gibi bir şey kullanan bir geliştirici için bu kaplamalar çok önemlidir ve yalnızca birinin gösterilebilmesi gerçeği NEDEN bir nedendir .
Alex McMillan

2
Windows 10'un bozduğu her şeyden @Alex, bu benim listemin oldukça altında. OneDrive'ı kullanıcılara dayatma kararı, kabuk ekibi tarafından değil, pazarlama departmanı tarafından verilen bir karardı. Hiç kimse geri dönüp kabuk görüntü listelerini kullanıcı dostu hale getirmek için iyileştirmek için zaman ve para ayırmadı.
Cody Grey

6
Bu kabul edilebilir bir cevap değil. Bunun bir kısmının Microsoft'un kendisinden geldiğini biliyorum, bu yüzden kabul edilmeme Microsoft yaklaşımı içindir. Örneğime bakın: DropBox, Google Drive, Mega, OneDrive ve Tortoise SVN klasörlerini senkronize ettim ve tüm kaplamaları tüm klasörlerde doğru bir şekilde görmek istiyorum, ancak yapamıyorum çünkü bu aptalca sınırlama.
Carlos B. Feitoza Filho

13

Cody'den pratik konularda mükemmel yanıt. Neden 15 değil de başka bir sayıya gelince, sınır ImageList kontrolünün kendisine yüklenir .


4

Bu, Cody Gray tarafından açıklandığı gibi, çok iyi ve güzel, ama açıkçası oldukça hayal gücü yok ve perde arkasında bildirildiği gibi, kulağa biraz hüsran dolu geliyor.

2015'te ve Windows 10 ile, elbette daha iyi bir yetenek olabilir ve olması gerekiyor, çünkü mevcut otuz katman var ve en çok görmek istediklerime öncelik vermek zorunda kaldım, çoğu insanın endişelenmesini istediğiniz şey bu değil. Ayrıca Box gibi agresif satıcıların kendilerine öncelik vermeye çalışmak için aşırı rekabet ettiğini görüyorum ve bu asla iyi bir yere gitmeyecek.

İşte bir olasılık: Çarpma üst üste binmiş simgelerin genel bir kaplama göstergesi varsa; Google Chrome Uygulamaları düğmesi gibi birden çok renkten oluşan küçük bir dikdörtgen matris? Tek başına üst üste bindirme, yalnızca uzun bir listenin kaplamasını gösterir.

Daha sonra fare işaretçisi simgeyle karşılaştığında, küçük bir açılır pencere görüntülemek için tüm simge çeşitlerini toplar (küçük simge boyutunda veya biraz daha büyük). Üst üste yerleştirilen her simge, fareyi üzerine getirdiğinizde araç ipucu ile ne olduğunu duyurur.

Artık çeşitli bulutlarda durum için, Tortoise araçlarında olduğu gibi depo göstergeleri için ihtiyacınız olan tüm simge katmanlarına sahip olabilirsiniz.


2
Bindirmelerin arkasındaki fikir, gözlem altındaki nesnenin durumunu "bir bakışta" tanımlayabilmeniz gerektiğidir. Planınız, yaratıcı olsa da, bilgileri ortaya çıkarmak için "eller klavye veya fare" gerektirir. Daha iyi bir çözümüm olduğundan değil ...
rbellamy

Bir açılır pencerede olmaları gerekiyorsa, bilgileri neden Bilgi Çubuğuna veya Önizleme Bölmesine veya kullanıcı arabiriminde başka bir yere koymuyorsunuz? Bindirme simgelerinin tüm amacı, aslında üst üste yerleştirilmiş olmaları ve bir bakışta görülebilmeleridir.
Cody Grey
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.