Обновить иконку кеша без перезагрузки

Обычно, чтобы обновить кэш иконок в Windows, мы должны перезагрузиться.

Есть ли способ обновить кэш иконок в Windows 7/8 без перезагрузки?

9 ответов

Решение

Да.

Вы можете просто запустить следующую команду, чтобы очистить кэш иконок:

ie4uinit.exe -ClearIconCache

Для Windows 10 используйте:

ie4uinit.exe -show

Проверьте это видео для демонстрации.

[чаевые кредит]

Следующий способ работал с Vista; Требуется перезагрузка Проводника, но без перезагрузки.

Короткая версия: Остановить все explorer.exe экземпляры, удалите скрытого пользователя IconCache.db файл и перезапустите Explorer.

Длинная версия (есть и другие способы):

  1. Закройте все окна проводника, которые в данный момент открыты.

  2. Запустите диспетчер задач с помощью комбинации клавиш CTRL + SHIFT + ESC или запустите taskmgr.exe,

  3. На вкладке "Процесс" щелкните правой кнопкой мыши explorer.exe обработать и выбрать Завершить процесс.

  4. Нажмите кнопку Завершить процесс, когда появится запрос на подтверждение.

  5. В меню " Файл" диспетчера задач выберите " Новая задача" ("Выполнить").

  6. Тип CMD.EXE и нажмите ОК

  7. В окне командной строки введите команды одну за другой и нажмите клавишу ВВОД после каждой команды:

    CD /d %userprofile%\AppData\Local
    DEL IconCache.db /a
    EXIT
    
  8. В диспетчере задач нажмите " Файл", выберите " Новая задача" ("Выполнить").

  9. Тип EXPLORER.EXE и нажмите ОК.

источник шагов инструкции

Предупреждение: важно, чтобы Explorer.exe не запускался при удалении файла IconCache.db. Если проводник запущен, он будет просто записывать текущие (поврежденные) значки при следующем выключении (например, при выходе из системы, завершении работы или перезапуске).

  1. Откройте командную консоль с правами администратора
  2. taskkill /IM explorer.exe /F
  3. CD /d %userprofile%\AppData\Local
  4. DEL IconCache.db /a
  5. Начните explorer.exe через диспетчер задач

Создайте файл.bat и вставьте в него следующие строки, а затем запустите его.

taskkill /f /im explorer.exe
cd /d %userprofile%\AppData\Local
del IconCache.db /a
start explorer.exe

Есть чистый способ закрыть Explorer.exe экземпляр, который показывает панель задач и значки рабочего стола.

Вы должны всплыть классический Shutdown диалоговое окно Единственный общий способ сделать это:

  1. Оставьте хотя бы один пиксель фона рабочего стола без перекрывающихся окон, затем нажмите на него, чтобы сфокусироваться на самом рабочем столе (тот, что с иконками).

  2. Нажмите сочетание клавиш Alt + F4: появится классический диалог выключения.

  3. Теперь нажмите и удерживайте 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

Не очень красиво, но эффектно:

C:> Исследователь Цкилла

Если вам нужен полный обновленный кэш значков, перейдите в адресную строку проводника Windows и введите "C:\Users* Имя пользователя *\AppData\Local", а затем удалите IconCache.db.

** Примечание:** Это может быть скрытый файл. Поэтому я рекомендую включить параметр Показать скрытые файлы в папке.

Другие вопросы по тегам