我可以阻止覆盖图标的更改吗?

Bmy*_*est 17 windows-registry icons batch-file

背景

几个程序修改 explorere 中的图标以指示状态(“同步” TortoiseCVS 同步覆盖 等等。)

众所周知,Windows(win7、win8、win10?)只能处理有限数量的此类图标(~15),并且有几个相关问题(fe here)。

这些覆盖图标在分支的注册表中注册:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

注册表中外壳覆盖图标的位置

实际上只使用了前几个条目(15?),其他条目被忽略。因此,让多个程序安装自己的覆盖图标可能会破坏已安装程序的行为。

要解决此问题,通常必须进入注册表并删除(或重命名)不需要的条目,直到需要的条目位于顶部。

问题

最近,我注意到几个程序在争夺这些最高职位的行为越来越“咄咄逼人”。这通常是通过使用以空格字符开头的键名来执行顶部排序来完成的。 例如,DropboxGoogleDriveSkyDriveOneDrive都在这样做。有些,比如现在的GoogleDrive甚至使用三个空格,但其他程序正在变得平等......

更糟糕的是,某些程序甚至会在任何自动“更新”(甚至更新检查或程序启动?)期间自动修复此设置。因此,任何手动调整都会定期撤消。我至少在GoogleDriveDropboxOneDrive 上注意到了这一点

有没有办法“保护”注册表免受此类自动更改的影响?

编辑(答案)

Alexey Ivanov 在下面的评论中给出了一个很好的建议,到目前为止“撤销注册表权限”已经为我抑制了这个问题。

Nun*_*uno 13

我所做的,因为 Dropbox 真的变得很烦人,我创建了一个“.reg”文件来删除所有这些 Dropbox 条目:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt01]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt02]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt03]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt04]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt05]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt06]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt07]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt08]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt09]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt10]
Run Code Online (Sandbox Code Playgroud)

然后,我运行一个“.cmd”文件来执行它并重新启动 Windows 资源管理器:

regedit -s FixDropboxTortoiseSVNConflict.reg

taskkill /f /im explorer.exe

start explorer.exe
Run Code Online (Sandbox Code Playgroud)

TortoiseSVN 再次显示图标覆盖。

不是最漂亮的做事方式,并且可能需要在以后 Dropbox 再次更改它们时更改上面的注册表项,但是删除了一些手动转到注册表并重命名/删除它们的工作,一一:)