通常,要刷新Windows中的图标缓存,我们必须重新启动。
有没有一种方法可以在不重新启动的情况下刷新Windows 7/8中的图标缓存?
通常,要刷新Windows中的图标缓存,我们必须重新启动。
有没有一种方法可以在不重新启动的情况下刷新Windows 7/8中的图标缓存?
Answers:
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
自Vista以来,以下方法一直有效。它要求资源管理器重新启动,但无需重新启动。
简短版本:停止所有explorer.exe
实例,删除用户的隐藏IconCache.db
文件,然后重新启动资源管理器。
长版(还有其他方法):
关闭所有当前打开的资源管理器窗口。
使用+ + 键序列或通过运行启动任务管理器。CTRLSHIFTESCtaskmgr.exe
在“ 流程”选项卡中,右键单击explorer.exe
流程,然后选择“ 结束流程”。
当要求确认时,单击“ 结束进程”按钮。
从任务管理器的文件菜单中,选择新建任务(运行…)
键入CMD.EXE
,然后单击确定。
在“命令提示符”窗口中,一一键入命令,然后ENTER在每个命令之后按:
CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
EXIT
在“ 任务管理器”中,单击“ 文件”,选择“ 新建任务(运行…)”。
键入EXPLORER.EXE
,然后单击确定。
警告:删除IconCache.db文件时,不要运行Explorer.exe非常重要。如果资源管理器正在运行,它将在下次关闭时(例如,注销,关闭或重新启动时)简单地写出当前(损坏的)图标。
有一种干净的方法可以关闭Explorer.exe
显示任务栏和桌面图标的实例。
您必须弹出经典Shutdown
对话框窗口。我发现完成此操作的唯一常见方法是:
保留至少一个像素的桌面背景,没有重叠的Windows,然后单击它以专注于桌面本身(带有图标的像素)。
按Alt+ F4键盘快捷键:然后将显示经典的“关闭”对话框。
现在,按住CTRL + ALT + SHIFT单击Cancel
。
File Explorer
先关闭所有窗口,这一点很重要!然后,您可以Exit Explorer
从Windows 7开始菜单中。首先打开命令提示符。下一步,单击开始菜单,按住Ctrl+Shift
并在Shutdown
按钮上方右击以显示Exit Explorer
子菜单选项,然后单击它。在命令提示符下,键入,CD /d %userprofile%\AppData\Local
然后键入del IconCache.db /a
,最后键入explorer
。
explorer.exe
Win
并释放它。然后两次 Alt+F4
。这种方法速度更快,您无需查看桌面的一部分即可打开经典的关机菜单。
创建一个.bat文件,并将以下行粘贴到其中,然后运行它。
taskkill /f /im explorer.exe
cd /d %userprofile%\AppData\Local
del IconCache.db /a
start explorer.exe
copy con clearcache.bat
然后按Enter,然后单击鼠标右键将其粘贴。再按一次Enter,然后按Ctrl-Z完成创建文件的工作。然后我键入clearcache
运行它。窗口闪烁,所有图标恢复固定。整个修复过程总共花费了30秒。谢谢。优秀的答案。
如果不想创建.bat
,请复制后面的行,按Win+ R,粘贴并按Enter。
cmd /c taskkill /f /im explorer.exe & del /a %userprofile%\AppData\Local\IconCache.db & start explorer
您也可以将其粘贴到资源管理器窗口的地址栏中。当然,在命令行窗口中(您不需要cmd /c
那么),但是如果您再次需要它,您将没有一行可以轻松地重复它。
注意事项:
除非您确定自己是系统中的唯一用户,否则不要在提升权限的提示符下运行此行,否则您将在所有打开的会话中杀死Explorer 。因此,请勿在“ 运行”对话框中按Shift+ Ctrl+ 。Enter
顺便说一句,我看cd /d
不到重复看到的命令的需要。似乎每个人都只是在复制/粘贴而不考虑命令的用途。
注意:
我使用它&
来代替,&&
以防万一其中一个命令失败,以确保重新启动资源管理器。
尽管不是用户群答案,但只需致电即可
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
做到这一点[1]。可能有人会创建一个实用程序来做到这一点;当前,使用7-zip尝试修改文件关联(针对所有用户;不提升权限;这将失败并表明操作失败),将调用通知并重建图标缓存。
哦,刚刚看到了对已接受答案的评论,并在其中讨论了呼叫,并提到了用于此目的的工具:https : //github.com/crazy-max/IconsRefresh。
[1] https://docs.microsoft.com/zh-CN/windows/desktop/api/shlobj_core/nf-shlobj_core-shchangenotify
如果要完整刷新的图标缓存,请转到Windows资源管理器的地址栏,然后键入“ C:\ Users *用户名* \ AppData \ Local”,然后删除IconCache.db。
**注意:**它可能是隐藏文件。因此,我建议打开“在文件夹选项中显示隐藏文件”。