赞
踩
win10本本前段时间TortoiseGit图标显示还是正常的。
这几天开始不显示TortoiseGit图标。
看了资料,问题出在windows只支持最多15个外壳图标(shell icon)覆盖(overlay)。
为啥只支持15个外壳图标,参见Why is there a limit of 15 shell icon overlays?
打开注册表 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
如果看到条目数量大于15个,那么排在后面的条目就不能在外壳中显示自定义图标了。
我将除了TortoiseGit之外的外壳图标覆盖都删掉了
其中 360UDiskGuard Icon Overlay 可以删掉,但是计算机重启后,360又给加上了。
其中 EnhancedStorageShell 是删不掉的,删除时,会报错,提示不能删除。
导出这个分支的注册表内容如下:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ 360UDiskGuard Icon Overlay] @="{CC00F81D-5262-450A-B1FA-D6BEE3406263}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise1Normal] @="{C5994560-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise2Modified] @="{C5994561-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise3Conflict] @="{C5994562-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise4Locked] @="{C5994563-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise5ReadOnly] @="{C5994564-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise6Deleted] @="{C5994565-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise7Added] @="{C5994566-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise8Ignored] @="{C5994567-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ Tortoise9Unversioned] @="{C5994568-53D9-4125-87C9-F193FC689CB2}" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\EnhancedStorageShell] @="{D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}"
可以发现条目的名字有意思,除了删不掉的EnhancedStorageShell,其他项名称前面都带了空格。
e.g. " Tortoise9Unversioned",项名称前面带了2个空格。
e.g. " 360UDiskGuard Icon Overlay", 项名称前面带了7个空格,360真离谱
前面手工删掉的onedriver的条目,项名称前面也带了空格。
猜测,谁带空格带的多,谁就显示在前面。谁显示在前面,那么外壳图标覆盖的优先级就越高。
这也说明一个道理,如果自己要加shell icon overlay的项,需要先遍历这个节点,将项名称前面空格的最大数量统计出来,自己要插入的项名称前面带的空格一定要比他们多,才能优先显示自己的shell icon overlay.
图标缓存必须小于8*1024, 刚装完的win10默认是没有这个值的。可以手工加上(可选),让shell icon 显示的快一些。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"Max Cached Icons"="8192"
重启计算机后,TortoiseGit图标 显示正常了。
不要轻易删除其他项,会引起右键菜单时,资源管理器无响应或重启。
最好的方法是,将TortoiseGit的项名称前面多加几个空格,比其他项的空格多就行。这样最稳妥。
如果在资源管理器中右键无响应了,还得去改另外一个右键菜单的注册表。
计算机\HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers
这块和上面删掉的那些右键shell icon overlay 有关联。
除了以下3项,其余的\HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers项都删掉.
\HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\New
\HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\TortoiseGit
\HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\WorkFolders
这下好使了。还是改注册表之前,先将改的分支备份以下才靠谱。
这样处理后,其他程序加的右键菜单条目就没有了。
本地的TortoiseGit经常显示的慢, 或者不显示.
今天去看了一下有没有新版本, 看到最新的版本为2.15, 我本地的是2.13. 准备装一个.
正好想到图标显示的问题, 去看了官方FAQ, 有说到.
官方说将以下2个注册表位置的图标覆盖多余的选项删掉就行.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
先手工删除可以删的全部条目, 最后发现删不掉的只有EnhancedStorageShell.
依次安装 Git-2.42.0.2-64-bit.exe, TortoiseGit-2.15.0.0-64bit.msi, TortoiseGit-LanguagePack-2.15.0.0-64bit-zh_CN.msi
重启计算机后, ShellIconOverlayIdentifiers中的正常值就有了, TortoiseGit图标显示也正常了.
暂时没发现右键菜单卡死的问题.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。