ShellIconOverlayIdentifiers - 为什么这么少? [英] ShellIconOverlayIdentifiers - why so few?

查看:605
本文介绍了ShellIconOverlayIdentifiers - 为什么这么少?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此时,每个人都知道 ShellIconOverlayIdentifiers 的数量有限(来自MSDN):

At this point, everyone knows that there's a limit to the number of ShellIconOverlayIdentifiers (from MSDN):


系统可以支持的不同图标叠加处理程序的数量受系统图像列表中可用于图标叠加的空间量的限制。目前有15个插槽用于图标覆盖,其中一些是由系统保留的。因此,只有在没有令人满意的替代方案时才应实现图标叠加处理程序

The number of different icon overlay handlers that the system can support is limited by the amount of space available for icon overlays in the system image list. There are currently fifteen slots allotted for icon overlays, some of which are reserved by the system. For this reason, icon overlay handlers should be implemented only if there are no satisfactory alternatives

我可以理解Windows 95中的15个叠加限制但是在一个有Gigs of RAM,众多内核和GPU的环境中,现代操作系统中出现如此低数量的技术原因是什么?

I can understand the 15 overlay limt in Windows 95. But in an environment where there's Gigs of RAM, numerous Cores, and GPUs, is there some technical reason for such a low number in a modern operating system?

为什么该值是否可配置?

And why isn't this value configurable?

在给出性能答案之前,请考虑:
Windows允许配置以便您可以杀死性能......为什么要专门选择这个问题?

Before giving the 'performance' answer, consider: Windows allows for configuration such that you can kill performance... why pick on this issue specifically?

推荐答案

除非有人在这里碰巧在Windows Shell团队工作,我怀疑你是否会得到一个真正解决技术限制以及它们如何影响设计选择的答案。但我会尝试......

Unless someone here happens to work on the Windows Shell team, I doubt that you're going to get an answer that really addresses the technical limitations and how they affect the design choice. But I'll try...

我的猜测是没有任何技术限制,或者至少现在没有技术限制。 真正的原因可能是没有人花时间坐下来更新代码,设计和规格来解除这个限制。默认情况下没有实现功能,只是因为计算环境在过去几年中发生了变化并不意味着有人坐下来重新编写Windows以充分利用所有这些变化。

My guess is that there isn't any technical limitation, or at least there isn't one now. The real reason is presumably that no one has ever taken the time to sit down and update the code, the design, and the spec to lift this limitation. Features aren't implemented by default, and just because the computing environment has changed in the last few years doesn't mean that someone sat down and rewrote Windows to take full advantage of all those changes.

你应该同时也认为这很可能是一种有意识的设计选择,而非强加的限制。 Raymond Chen(实际上 在shell团队中工作)发布了博客条目回应关于Windows 7消除共享手覆盖的骚动。他提出了一个令人信服的论点,即图标叠加真的不是一种显示信息的理想方式(超出系统限制为15的事实)[强调补充]:

You should also consider that is more than likely a conscious design choice, rather than an imposed limitation. Raymond Chen (who actually does work on the shell team) published a blog entry responding to the uproar about Windows 7 removing the "sharing hand" overlay. He makes a compelling argument that the icon overlay is really not a desirable way of showing information (above and beyond the fact that the system is limited to 15) [emphasis added]:

一般来说,叠加不是
呈现信息的好方法
因为每个图标只能有一个叠加
,并且每个ImageList的覆盖限制为15
如果有
两个或更多叠加适用于
项目,那么一个将赢,其他
将会丢失,此时
的值将覆盖作为一种确定
的方式,什么属性适用于某个项目
减少
,因为唯一的方法是
确保缺少一个属性是
当你看不到重叠一点都不(如果
你看到一些其他叠加,你不能
告诉你是否因为你的
财产缺失或因为
其他叠加显示而不是
你的。)

Generally speaking, overlays are not a good way of presenting information because there can be only one overlay per icon, and there is a limit of 15 overlays per ImageList. If there are two or more overlays which apply to an item, then one will win and the others will lose, at which point the value of the overlay as a way of determining what properties apply to an item diminishes since the only way to be sure that a property is missing is when you see no overlay at all. (If you see some other overlay, you can't tell whether it's because your property is missing or because that other overlay is showing instead of yours.)

对我而言,添加到shell中的额外杂乱在大多数现实世界中根本不值得案例。 Windows Shell团队显然得出了相同的结论并削减了共享手覆盖。 Raymond的直接解释:

It seems reasonable to me that the extra clutter added to the shell is simply not worth it in the majority of real-world cases. The Windows Shell team obviously reached the same conclusion and cut the "sharing hand" overlay. Raymond's direct explanation:


鉴于人们如何使用
计算机的变化,共享信息的价格变得越来越多默认的
状态。当你设置一个HomeGroup时,
几乎所有东西都将是
共享。为了消除视觉混乱,
信息被移动到
详细信息窗格。

Given the changes in how people use computers, sharing information is becoming more and more of the default state. When you set up a HomeGroup, pretty much everything is going to be shared. To remove the visual clutter, the information was moved to the Details pane.

和,我知道你特别要求不要提及性能,但是Windows确实尝试让你无法自拔。用户需要在shell中做出响应,而叠加图标可能会干扰这个。作为进一步证明他们不是优先权的另一篇博客文章由同一个Raymond Chen惩戒:

And, I know you specifically asked not to mention performance, but Windows really does try to keep you from shooting yourself in the foot. Users demand responsiveness in the shell, and overlay icons can interfere with this. As further evidence that they are not the priority, another blog post by the same Raymond Chen chastises:


另一个有
a自私的应用程序示例性能观来自一家公司开发图标
覆盖处理程序的
。 shell将
重叠计算视为低优先级
项,因为更重要的是
在屏幕上获取图标,因此用户
可以开始做任何他们的
想做。装饰品
可以晚点出来。这家公司想要
知道是否有一种方式可以
改善他们的性能并在屏幕上获得
叠加到屏幕上甚至
之前图标显示,
演示一个非常自私的
对表现的解释。

Another example of applications having a selfish view of performance came from a company developing an icon overlay handler. The shell treats overlay computation as a low-priority item, since it is more important to get icons on the screen so the user can start doing whatever it is they wanted to be doing. The decorations can come later. This company wanted to know if there was a way they could improve their performance and get their overlay onto the screen even before the icon shows up, demonstrating a phenomenally selfish interpretation of "performance".

这篇关于ShellIconOverlayIdentifiers - 为什么这么少?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆