ShellIconOverlayIdentifiers-왜 그렇게 적은가요?


84

이 시점에서 모든 사람은 ShellIconOverlayIdentifiers(MSDN에서) 수에 제한이 있음을 알고 있습니다 .

시스템이 지원할 수있는 다른 아이콘 오버레이 핸들러의 수는 시스템 이미지 목록의 아이콘 오버레이에 사용할 수있는 공간의 양에 의해 제한됩니다. 현재 아이콘 오버레이에 할당 된 15 개의 슬롯이 있으며 그중 일부는 시스템에 의해 예약되어 있습니다. 이러한 이유로 아이콘 오버레이 핸들러는 만족스러운 대안이없는 경우에만 구현해야합니다.

Windows 95에서 15 개의 오버레이 제한을 이해할 수 있습니다.하지만 RAM, 수많은 코어 및 GPU가있는 환경에서 최신 운영 체제에서 이렇게 적은 수의 기술적 이유가 있습니까?

그리고이 값을 구성 할 수없는 이유는 무엇입니까?

'성능'답변을 제공하기 전에 다음 사항을 고려하십시오. Windows는 성능을 저하시킬 수있는 구성을 허용합니다.이 문제를 구체적으로 선택하는 이유는 무엇입니까?


이 태그가 "tortoisesvn"인 이유는 무엇입니까? 내가 뭔가를 놓치고 있습니까?
Cody Gray

19
나는 tortoisesvn이 아이콘 과도하게 제한을 다룰 때 가장 자주 언급되는 앱이기 때문에 영리하다고 생각했습니다. 대부분 사용 가능한 슬롯 중 9 개를 차지하기 때문입니다. 태그를 제거했습니다.
rbellamy

1
제한은 여전히 ​​Windows 10에서 동일합니다. 이유도 모르겠습니다.
Gohan

답변:


86

여기에있는 누군가가 Windows Shell 팀에서 일하지 않는 한, 기술적 한계와 디자인 선택에 미치는 영향을 실제로 해결하는 답을 얻을 수 있을지 의심됩니다. 하지만 노력 할게 ...

제 생각에는 기술적 제한이 없거나 적어도 지금은 없습니다. 진짜 이유는 아마도 아무도이 한계를 극복하기 위해 앉아서 코드, 디자인 및 사양을 업데이트하는 데 시간을 할애하지 않았기 때문일 것입니다. 기능은 기본적으로 구현되지 않으며 지난 몇 년 동안 컴퓨팅 환경이 변경되었다고해서 누군가가 앉아서 모든 변경 사항을 최대한 활용하기 위해 Windows를 다시 작성했음을 의미하지는 않습니다.

또한 부과 된 제한이 아니라 의식적인 디자인 선택 일 가능성이 더 크다는 점을 고려해야합니다. (실제로 레이몬드 첸 않습니다 쉘 팀 작업) 게시 된 블로그 항목 은 "공유 손"오버레이를 제거 윈도우 7에 대한 소란에 응답합니다. 그는 아이콘 오버레이가 정보를 표시하는 바람직한 방법이 아니라는 강력한 주장을합니다 (시스템이 15 개로 제한된다는 사실 이상) [강조 추가됨] :

일반적으로 오버레이는 아이콘 당 하나의 오버레이 만있을 수 있고 ImageList 당 15 개의 오버레이로 제한 되기 때문에 정보를 표시하는 좋은 방법이 아닙니다 . 항목에 적용되는 오버레이가 두 개 이상인 경우 하나는 이기고 다른 하나는 잃게됩니다.이 시점에서 항목에 적용되는 속성을 결정하는 방법으로서 오버레이의 값이 감소 합니다. 속성이 누락 된 것은 오버레이가 전혀 표시되지 않는 경우입니다. (다른 오버레이가 표시되는 경우 속성이 누락 되었기 때문인지 아니면 다른 오버레이가 귀하의 오버레이 대신 표시되기 때문인지 알 수 없습니다.)

셸에 추가 된 추가 혼란이 대부분의 실제 사례에서 그만한 가치가 없다는 것이 나에게 합리적으로 보입니다. Windows Shell 팀은 분명히 동일한 결론에 도달하고 "공유 손"오버레이를 잘라 냈습니다. Raymond의 직접적인 설명 :

사람들이 컴퓨터를 사용하는 방식이 변경됨에 따라 정보 공유는 점점 더 기본 상태가되고 있습니다. 홈 그룹을 설정하면 거의 모든 것이 공유됩니다. 시각적 혼란을 제거하기 위해 정보가 세부 정보 창으로 이동되었습니다.

그리고, 난 당신이 특별히 언급 성능을 요구 한 알고 있지만, 윈도우는 진짜로 하려고 발에서 자신을 촬영에서 당신을 유지합니다. 사용자는 셸에서 응답 성을 요구하며 오버레이 아이콘이이를 방해 할 수 있습니다. 그들이 있다는 증거로 우선 순위하지 , 다른 블로그 게시물 같은 레이몬드 첸 비난한다에 의하여 :

성능에 대한 이기적인 시각을 가진 애플리케이션의 또 다른 예는 아이콘 오버레이 핸들러를 개발하는 회사에서 나왔습니다. 셸은 오버레이 계산을 우선 순위가 낮은 항목으로 처리합니다. 사용자가 원하는 작업을 시작할 수 있도록 화면에 아이콘을 표시하는 것이 더 중요하기 때문입니다. 장식은 나중에 올 수 있습니다. 이 회사는 아이콘이 나타나기 전에 성능을 향상시키고 화면에 오버레이를 표시하여 "성능"에 대한 이기적인 해석을 보여줄 수있는 방법이 있는지 알고 싶었습니다.


15
훌륭한 반응. 따라서 더 나은 질문은 "파일 / 폴더의 상태에 대해 동일한 즉각적인 시각적 대기열을 표시하는 아이콘 오버레이의 대안은 무엇입니까?"입니다. 콘텐츠 유형을 식별하는 것 이상을 수행하기 위해 아이콘을 사용하는 것이 Raymond Chen이 언급 한 정확한 이유 (파일 위치 경계, 상태 MATTERS의 모호함)로 인해 점점 더 중요 해지고있는 것 같습니다.
rbellamy 2010

3
나는 그것이 의식적인 디자인 선택도 아니고 부과 된 제한도 아니라고 생각한다. 그러나 오래 전에 (Win 95), 설치 한 사용자 기반으로 인해 고쳐지지 않은 끔찍한 디자인 결정이다. 가장 어리석은 결정은 각 오버레이 확장이 하나의 아이콘 오버레이 만 지원할 수 있으며 각 파일에 대해 쉘은 "적용 하시겠습니까?"만 묻는 것입니다. 그것은 해야한다 각 오버레이 아이콘의 배열을 지원하고 있고, 각 파일에 대해 쉘은에 확장 하나의 옵션으로 "나는이 적용되지 않는다"대답 할 수 "있는 아이콘 오버레이?"묻습니다.
Keith Robertson

9
MS가 ShellIconOverlayIdentifiersWin10부터 OneDrive crud를 사용하여 레지스트리 항목을 진흙탕으로하여 이를 수용했다는 사실에 흥미 롭습니다. TortoiseSVN / GIT와 같은 것을 사용하는 개발자에게 이러한 오버레이는 중요하며 하나만 표시 할 수 있다는 사실이 이유 입니다.
Alex McMillan

2
Windows 10이 깨뜨린 모든 것 중 @Alex는 내 목록에서 훨씬 아래에 있습니다. OneDrive를 사용자에게 적용하기로 결정한 것은 쉘 팀이 아니라 마케팅 부서에서 내린 결정이었습니다. 아무도 돌아가서 쉘 이미지 목록을 사용자 친화적으로 개선하는 데 시간과 비용을 할당하지 않았습니다.
Cody Gray

6
이것은 허용되는 대답이 아닙니다. 나는 그것의 일부가 마이크로 소프트 자체에서 나왔다는 것을 알고있다. 그래서 받아 들여지지 않는 것은 마이크로 소프트 접근 방식이다. 내 예를 참조하십시오 : DropBox, Google Drive, Mega, OneDrive 및 Tortoise SVN의 폴더를 동기화했으며 모든 폴더에서 모든 오버레이를 올바르게보고 싶지만이 바보 같은 제한 때문에 할 수 없습니다.
Carlos B. Feitoza Filho 2010 년

13

Cody의 실질적인 문제에 대한 탁월한 대응. 다른 숫자가 아닌 15 인 이유에 대해서는 제한이 ImageList 컨트롤 자체에 적용됩니다.


4

Cody Gray가 설명했듯이 이것은 모두 매우 훌륭하고 좋지만 솔직히 상상력이 부족하며 뒤에서보고 된 것처럼 약간 실망 스럽습니다.

2015 년과 Windows 10에서는 분명히 30 개의 오버레이에 대해 언급했고 내가 가장보기를 원하는 오버레이의 우선 순위를 지정해야했기 때문에 더 나은 기능이있을 수 있고 필요합니다. 또한 Box와 같은 공격적인 공급 업체가 자신의 우선 순위를 정하기 위해 지나치게 경쟁하는 모습을 보았습니다.

여기에 가능성이 있습니다. 다중 오버레이 아이콘에 일반 오버레이 표시기가 있으면 어떻게 될까요? Google 크롬 앱 버튼과 같은 여러 색상의 작은 직사각형 매트릭스? 단일 오버레이는 긴 목록에서 오버레이를 표시합니다.

그런 다음 마우스 포인터가 아이콘을 만나면 작은 플라이 아웃 창에서 볼 수있는 모든 아이콘 변형을 수집합니다 (작은 아이콘 크기 또는 조금 더 크게). 각각의 오버레이 된 아이콘은 마우스를 올려 놓으면 도구 설명으로 그 의미를 알려줍니다.

이제 다양한 클라우드의 상태, Tortoise 도구와 같은 저장소 표시 등에 필요한 모든 아이콘 오버레이를 가질 수 있습니다.


2
오버레이의 개념은 관찰중인 물체의 상태를 "한눈에"식별 할 수 있어야한다는 것입니다. 귀하의 계획은 창의적이지만 정보를 표시하기 위해 "키보드 또는 마우스에 손을 대야"합니다. 내가 더 나은 해결책이 있다는
건 아니에요

플라이 아웃 창에 있어야하는 경우 정보 표시 줄이나 미리보기 창 또는 UI의 다른 위치에 정보를 넣는 것이 어떻습니까? 오버레이 아이콘의 요점은 실제로 오버레이되어 한 눈에 볼 수 있다는 것입니다.
Cody Gray
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.