Win8 탐색기에 아이콘 오버레이 (타사 앱의)가 표시되지 않는 이유는 무엇입니까?


35

Windows 탐색기에서 유용한 정보를 제공하는이 멋진 아이콘 오버레이는 표시되지 않습니다. 내 뜻의 스크린 샷

Dropbox에서 가장 성가신 일입니다 (이미 https://www.dropbox.com/help/154/en을 읽었습니다 ). 방금 Dropbox를 다시 설치하려고했는데 도움이되지 않았습니다. 나는 함께이 문제가 링크 셸 확장 나는 그것이 보관 용 문제가 특별히이라고 생각하지 않도록; 내 OS에 문제가 있습니다. OS는 실제로 매우 새로 설치되었습니다 ...

운영체제 : Win8 Pro 64-bit.


3
설치 프로그램이 문제를 발견하고 설치 중에이를 해결할 수 있도록 프로그래밍 방식으로이 작업을 수행하는 방법이 있습니까?
jordanpg

관련 있지만 나중에 질문 : superuser.com/q/809529/3588
CAD bloke

답변:


39

오버레이 아이콘을 등록하는 도구를 너무 많이 설치 한 것 같습니다. Windows는 변경할 수없는 오래된 16 비트 코드로 인해 오버레이 아이콘이 15 개로 제한됩니다 .

값 15는 이미지 목록의 해당 한계에서 나왔습니다. ImageList_SetOverlayImage 함수는 이미지 목록 당 최대 15 개의 이미지 목록 오버레이를 지원합니다. (이봐, 그것은 더 나 빠졌다. 한도는 3 이었어!)

알았어, 그런데 왜 15 살이야? 왜 더하지?

오버레이 이미지는 이미지 목록에서 이미지를 그릴 때 사용되는 정보 중 하나입니다. 옵션은 fStyle 매개 변수로 인코딩되며 비트가 다양한 목적으로 분할 된 경우 오버레이 이미지를 지정하는 데 4 비트를 사용할 수 있습니다. ( "오버레이 없음"을 지정하기 위해 값 중 하나를 잃기 때문에 16 개 대신 15 개의 오버레이 이미지가 나타납니다.)

그래도 fStyle 매개 변수의 값은 하위 16 비트 만 사용합니다. 상위 16 비트는 어떻습니까? 거기에 충분한 공간이 있습니다.

16 비트 제한은 16 비트 버전의 공용 컨트롤 (Windows 95에서 여전히 지원해야 함)에서 가져 왔습니다. 물론 오늘날에는 16 비트 버전의 공통 컨트롤에 신경 쓰지 않는 사람이 있다면 왜 상위 비트를 사용하지 않습니까?

불만족스러운 설명이 있습니다. fStyle을 내부적으로 관리하는 코드는 여전히 일부 위치에서 WORD를 사용하므로 fStyle을 관리하는 모든 코드를 수정해야합니다. 이것은 Windows의 여러 모듈에서 발생하므로 여러 구성 요소에서 동기화 된 변경을 수행해야합니다. 인터페이스가 더 이상 호환되지 않기 때문에 이진 수준의 주요 변경 사항입니다. 주요 변경 사항은 절차 적으로 조정하기가 어렵습니다. 영향을받는 코드는 아직 트렁크에 RI로 연결되지 않은 멀리 떨어진 리프 브랜치에 있기 때문에 셸 팀에 표시되지 않을 수 있습니다. fStyle을 WORD에서 DWORD로 확장하면 일부 구성 요소에 큰 영향을 줄 수 있습니다.

따라서 Microsoft는 탐색기를 중단하지 않고는 실제로 해결할 수 없습니다.

regedit를 열고

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

아이템 수를 세어보세요. 당신은 15의 한계에 도달하고 있습니까?

그렇다면 여기에 표시된 응용 프로그램을 제거하거나 다시 구성하거나 레지스트리 항목을 수동으로 제거하십시오 (물론 백업).


둘 다 내 Windows7에 설치했고 아마도 더 많은 것들이 있을 것입니다 . win7은 ~ 3 년 동안 실행되었습니다 ...
kluka

3
regedit를 열고는, 이동 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiersHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers및 항목의 수를 계산합니다. 당신은 15의 한계에 도달하고 있습니까?
magicandre1981

20 개 항목 .... Skydrive로 채워졌습니다 . 아아! (나는 다른 프로그램을 제거하고 이제 작동합니다)
kluka

그래도 남은 질문 : 해당 "폴더"에서 레지스트리 항목을 수동으로 제거하는 것이 안전합니까?
kluka

이것은 저장하지만 필요하지 않은 키를 먼저 사용하고 다음에 사용하지 않는 항목을 백업합니다. 또한 문제가 있으며 일부 TSVN 항목을 제거했습니다.
magicandre1981

19

반드시 키를 삭제할 필요는 없습니다.이 키의 이름을 순서대로 번호를 바꾼 다음 시스템을 다시 시작하면됩니다. 일련 번호는 OS가 상위 15 개만 계산하도록합니다.

예를 들면 다음과 같습니다.

여기에 이미지 설명을 입력하십시오


17
이것은 모든 광기에 Windows의 좋은 예일뿐입니다.
kluka

9
관련 앱 또는 설치 제거 프로그램을 혼동하는 것은 거의 확실합니다.
SamB

실제로 도움이되지 않습니다. 예를 들어 Skydrive는 일주일에 한 번 정도 아이콘 이름을 바꿉니다. 나는 이것을 정기적으로하고 싶지 않습니다.
Trilarion

4
내가 찾은 해결 방법 (그리고 몇 년 동안 나를 위해 일했다 하나) 추가하는 것입니다 사본을 내가 예를 들어 다른 모든 앞에있는 이름을 ...으로 표시 할 오버레이를 ___CRD3333DropboxExt1. 매우 추악한 해킹이지만 오버레이를 안정적으로 만듭니다.
Chris R. Donnelly

2
레지스트리 설정을 내 보내서 욕심 많은 Dropbox와 OneDrive가 키 이름 앞에 공백이 있음을 발견했습니다 (RegEdit에 표시되지 않고 ASCII 정렬로 승리 함)-키 이름 접두사 '< sp> <sp> <sp> 011keyname '
Ed Randall
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.