Обновить иконку кеша без перезагрузки
Обычно, чтобы обновить кэш иконок в Windows, мы должны перезагрузиться.
Есть ли способ обновить кэш иконок в Windows 7/8 без перезагрузки?
9 ответов
Да.
Вы можете просто запустить следующую команду, чтобы очистить кэш иконок:
ie4uinit.exe -ClearIconCache
Для Windows 10 используйте:
ie4uinit.exe -show
Проверьте это видео для демонстрации.
Следующий способ работал с Vista; Требуется перезагрузка Проводника, но без перезагрузки.
Короткая версия: Остановить все explorer.exe
экземпляры, удалите скрытого пользователя IconCache.db
файл и перезапустите Explorer.
Длинная версия (есть и другие способы):
Закройте все окна проводника, которые в данный момент открыты.
Запустите диспетчер задач с помощью комбинации клавиш CTRL + SHIFT + ESC или запустите
taskmgr.exe
,На вкладке "Процесс" щелкните правой кнопкой мыши
explorer.exe
обработать и выбрать Завершить процесс.Нажмите кнопку Завершить процесс, когда появится запрос на подтверждение.
В меню " Файл" диспетчера задач выберите " Новая задача" ("Выполнить").
Тип
CMD.EXE
и нажмите ОКВ окне командной строки введите команды одну за другой и нажмите клавишу ВВОД после каждой команды:
CD /d %userprofile%\AppData\Local DEL IconCache.db /a EXIT
В диспетчере задач нажмите " Файл", выберите " Новая задача" ("Выполнить").
Тип
EXPLORER.EXE
и нажмите ОК.
Предупреждение: важно, чтобы Explorer.exe не запускался при удалении файла IconCache.db. Если проводник запущен, он будет просто записывать текущие (поврежденные) значки при следующем выключении (например, при выходе из системы, завершении работы или перезапуске).
- Откройте командную консоль с правами администратора
taskkill /IM explorer.exe /F
CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
- Начните
explorer.exe
через диспетчер задач
Создайте файл.bat и вставьте в него следующие строки, а затем запустите его.
taskkill /f /im explorer.exe
cd /d %userprofile%\AppData\Local
del IconCache.db /a
start explorer.exe
Есть чистый способ закрыть Explorer.exe
экземпляр, который показывает панель задач и значки рабочего стола.
Вы должны всплыть классический Shutdown
диалоговое окно Единственный общий способ сделать это:
Оставьте хотя бы один пиксель фона рабочего стола без перекрывающихся окон, затем нажмите на него, чтобы сфокусироваться на самом рабочем столе (тот, что с иконками).
Нажмите сочетание клавиш Alt + F4: появится классический диалог выключения.
Теперь нажмите и удерживайте CTRL+ALT+SHIFT, нажмите на
Cancel
,
Если вы не хотите сделать .bat
, скопируйте строку позади, нажмите Win+R, вставьте ее и нажмите Enter.
cmd /c taskkill /f /im explorer.exe & del /a %userprofile%\AppData\Local\IconCache.db & start explorer
Вы также можете вставить его в адресную строку окна проводника; и, конечно же, в окне командной строки (вам не нужно cmd /c
тогда) но у вас не будет строки, чтобы легко повторить ее на случай, если она понадобится вам снова.
ВНИМАНИЕ:
Не запускайте эту строку в режиме с повышенными привилегиями, если вы не уверены, что являетесь единственным пользователем в системе, или вы убьете проводник во всех открытых сеансах. Поэтому не нажимайте 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/en-us/windows/desktop/api/shlobj_core/nf-shlobj_core-shchangenotify
ie4uinit.exe
как предлагает Элмо, это хороший вариант, потому что он уже доступен в каждой системе. У меня были проблемы с тем, что он иногда не обновлялся в сложном командном файле, который у меня есть. Nircmd - отличная альтернатива, которая сработала для меня.
Эта команда, которую я использовал, сработала:
nircmd shellrefresh
Если вам нужен полный обновленный кэш значков, перейдите в адресную строку проводника Windows и введите "C:\Users* Имя пользователя *\AppData\Local", а затем удалите IconCache.db.
** Примечание:** Это может быть скрытый файл. Поэтому я рекомендую включить параметр Показать скрытые файлы в папке.