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


16

背景

一些程序修改资源管理器中的图标以指示状态(“同步” TortoiseCVS同步叠加等)

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

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

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

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

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

要解决此问题,通常必须进入注册表并删除(或重命名)不需要的条目,直到所需条目排在最前面。

问题

最近,我注意到一些争夺这些头把交椅的程序的行为越来越“激进”。这通常是通过使用以空格字符开头的键名来强制进行顶级排序来完成的。 例如DropboxGoogleDriveSkyDriveOneDrive都是这样做的。如今,有些驱动器(例如GoogleDrive甚至使用三个空格),但其他程序变得越来越...

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

有没有一种方法可以“保护”注册表免遭此类自动更改?

编辑(答案)

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


2
我对您的帖子进行了相当大的更改-问题是,如果您要获取批处理文件,则由于我们不是脚本编写服务,因此不在您的讨论范围内。另外,批处理可能不是最佳方法。通过保持简单,它将(希望)允许使用不同类型的答案。如果更改太大,可以随意回滚,但接受更改可能会被视为离题。
戴夫

@ Dave:好的,我不知道批处理文件在这个站点上是禁止访问的,因为我在答案中看到了很多。我只是以为批处理文件可能是这里的“唯一”解决方案,但实际上,我正在以某种方式寻求解决方案,您的编辑对我来说很好。如果您认为这增加了该职位的接受度,那就非常感谢。
BmyGuest '16

哦,向您的当前批处理文件寻求帮助就可以了(您需要共享代码)。但是要求我们为您写一个不是:)
戴夫

1
我真的很想解决这个问题。通过始终在每次更新中替换TortoiseSVN图标,Dropbox确实变得很烦人。我制作了一个脚本来修复这些问题并重新启动Windows资源管理器,但是在尝试找到避免这样做的方法时发现了这个问题……
Nuno

2
我想到的第一件事是从该注册表项撤消写特权。然后,没有程序将能够修改注册表项。要允许应用程序注册其覆盖图标集,您将需要再次编辑键上的权限以添加写权限。
阿列克谢·伊万诺夫

Answers:


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]

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

regedit -s FixDropboxTortoiseSVNConflict.reg

taskkill /f /im explorer.exe

start explorer.exe

然后TortoiseSVN再次显示图标覆盖。

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


太好了,正是我想要的东西,谢谢!使用start explorer.exe在cmd文件资源管理器品牌后台进程,因此shell窗口不保持打开它完成之后。
Shlublu

1
如果您将overlays.reg文件应用到.cmd其中regedit -s overlays.reg,则可以一次修复所有问题。您也可以删除整个HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers密钥,然后重新添加所需的密钥,否则OneDrive和Dropbox会继续在密钥中添加空格。
Dave Anderson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.