Для моего файлового суффикса «.special» я создал новый значок и сохранил его как файл с именем c:\special.ico.
Я также создал новое значение реестра HKEY_CLASSES_ROOT.special\ (стандартное) REG_SZ c:\special.ico
После перезагрузки моего ПК мой файл c:\special.ico отображается в файловом менеджере вместе с новым значком перед ним, но все мои файлы c:\somefolder\somefilename.special продолжают отображаться со старым значком по умолчанию.
Что мне нужно сделать, чтобы они отображались с новым значком?
решение1
Похоже, вы пропустили добавление DefaultIcon
подключей. Тогда...
Назначьте подразделу DefaultIcon значение по умолчанию типа REG_SZ, которое указывает полный путь к файлу, содержащему значок.
Из ресурсов разработчиков Microsoft -Как назначить пользовательский значок типу файла
Затем вам нужно вызвать обновление кэша иконок. Вместо полной перестройки кэша, REFRESH — это простой способ сделать это, выполнив следующую команду из диалогового Run
окна.
Для Windows 10;ie4uinit.exe -show
Для Windows 7 и 8;ie4uinit.exe -ClearIconCache
решение2
Документация MS верна, но в ней отсутствует часть per-user (ключ UserChoice). Если ключ Userchoice существует и указывает на ProgID, то этот ProgID будет действовать вместо того, что в HKCR\ProgID.
Если вы можете разместить дамп типа файла для .special
расширения, кто-то сможет вам помочь лучше.ТипФайлаDiag— хороший инструмент, который генерирует полный отчет.
решение3
CharlieRB и w32sh, спасибо! Я особенно ценю ссылку w32sh на FileTypeDiag, который, похоже, является полезным инструментом, о котором я не знал.
Что ДЕЙСТВИТЕЛЬНО работает, так это текст в ссылке MS, но он недостаточно точен; соответствующий пример совершенно неуместен или даже неверен.
Если вам нужен новый значок только для нового типа файла (т. е. тот, который еще не связан с каким-либо приложением), выполните следующие действия в реестре, если суффикс/тип файла — .x, а полный путь к файлу (.exe, .ico или другому), содержащему значок, — c:\y.ico
В HKEY_CLASSES_ROOT
.x (т.е. вы создаете новый ключ, который оставляете пустым, не убирайте точку, она является частью имени ключа)
.x\DefaultIcon (вы создаете новый подраздел DefaultIcon внутри вашего нового ключа .x)
со следующим значением:
(Стандарт) (тип: REG_SZ) c:\y.ico (двойные кавычки ("") не нужны)
После выключения и перезагрузки компьютера или просто выхода пользователя из системы с последующим входом пользователя в систему (просто пользовательизменятьбудет столь же недостаточным, как простое «обновление реестра»), вы увидите ваши файлы .x в вашем файловом менеджере вместе с ихновыйзначок из файла y. (То же самое происходит после изменения значка без изменения имени/расположения файла значка, т. е. когда вы заменяете содержимое файла значка: тогда новый значок снова будет виден только после перезапуска или выхода пользователя из системы и входа в систему.)
Ваше здоровье!