ดูเหมือนว่าคุณได้ติดตั้งเครื่องมือมากเกินไปที่ลงทะเบียนไอคอนซ้อนทับ Windows มีไอคอนซ้อนทับเพียง 15 อันที่น่าเกลียดเนื่องจากรหัส 16 บิตเก่าที่ไม่สามารถเปลี่ยนแปลงได้:
ค่า 15 มาจากขีด จำกัด ที่สอดคล้องกันสำหรับรายการรูปภาพ ฟังก์ชัน ImageList_SetOverlayImage รองรับรายการภาพซ้อนทับสูงสุด 15 รายการต่อรายการรูปภาพ (เฮ้มันเคยแย่กว่านี้เคย จำกัด แค่ 3!)
โอเค แต่ทำไมแค่ 15 ทำไมไม่มากไปกว่านี้?
ภาพซ้อนทับเป็นส่วนหนึ่งของข้อมูลที่ใช้เมื่อวาดภาพจากรายการรูปภาพ ตัวเลือกจะถูกเข้ารหัสในพารามิเตอร์ fStyle และเมื่อบิตถูกแบ่งออกเพื่อวัตถุประสงค์ต่าง ๆ จะมีสี่บิตที่พร้อมใช้งานเพื่อระบุภาพซ้อนทับ (คุณได้รับ 15 ภาพซ้อนทับแทนที่จะเป็น 16 เพราะคุณทำหนึ่งในค่านั้นหายไปเพื่อระบุ“ ไม่มีภาพซ้อนทับ”)
โอเค แต่ค่าในพารามิเตอร์ fStyle ใช้เฉพาะ 16 บิตด้านล่าง แล้ว 16 บิตส่วนบนล่ะ? มีห้องมากมายที่นั่น
ขีด จำกัด 16 บิตถูกยกมาจากตัวควบคุมทั่วไปรุ่น 16 บิต (ซึ่งยังจำเป็นต้องได้รับการสนับสนุนใน Windows 95) แน่นอนว่าทุกวันนี้ไม่มีใครสนใจเกี่ยวกับการควบคุมทั่วไปรุ่น 16 บิตดังนั้นทำไมไม่เริ่มใช้บิตบน
มีคำอธิบายที่ไม่น่าพอใจ: รหัสภายในที่จัดการ fStyle ยังคงใช้คำในบางสถานที่ดังนั้นรหัสทั้งหมดที่จัดการ fStyle จะต้องได้รับการแก้ไข สิ่งนี้เกิดขึ้นในหลายโมดูลใน Windows ดังนั้นการเปลี่ยนแปลงที่ซิงโครไนซ์จะต้องทำในหลาย ๆ องค์ประกอบ นี่เป็นการเปลี่ยนแปลงที่ไม่สิ้นสุดที่ระดับไบนารีเนื่องจากอินเทอร์เฟซไม่เข้ากันอีกต่อไป การเปลี่ยนแปลงการทำลายเป็นขั้นตอนที่ยากต่อการประสานงาน: รหัสที่ได้รับผลกระทบอาจไม่สามารถมองเห็นได้โดยทีมเชลล์เนื่องจากพวกเขากำลังนั่งอยู่ในกิ่งก้านใบที่อยู่ไกลออกไปซึ่งยังไม่ได้ RI อาจเป็นได้ว่าการขยาย fStyle จาก WORD เป็น DWORD นั้นมีผลที่ตามมาสำหรับองค์ประกอบบางอย่าง
ดังนั้น Microsoft ไม่สามารถแก้ไขได้โดยไม่ทำลาย Explorer
เปิด regedit ไปที่
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
และ
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
และนับจำนวนรายการ คุณกดขีด จำกัด ที่ 15 หรือไม่?
ถ้าใช่ให้ถอนการติดตั้งหรือกำหนดค่าแอปพลิเคชันที่แสดงไว้ที่นี่หรือลบรายการรีจิสตรีด้วยตนเอง (สำรองข้อมูลแน่นอน)