Для моего файлового суффикса ".special" я создал новый значок и сохранил его как файл с именем c:\special.ico.

Я также создал новое значение реестра HKEY_CLASSES_ROOT.special\ (Standard) REG_SZ c:\ special.ico

После перезагрузки моего компьютера мой файл c:\special.ico отображается в файловом менеджере вместе с новым значком перед ним, но все мои файлы c:\somefolder\somefilename.special продолжают отображаться со старым, значок по умолчанию.

Что мне нужно сделать, чтобы они отображались с новым значком?

3 ответа3

0

Документация MS верна, но пропускает пользовательскую часть (ключ UserChoice). Если ключ Userchoice существует и указывает на ProgID, этот ProgID будет действовать вместо того, который указан в HKCR\ProgID.

Если вы можете опубликовать дамп типа файла для расширения .special , кто-то сможет вам лучше помочь. FileTypeDiag - хороший инструмент, который генерирует полный отчет.

0

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. (То же самое верно и после изменения значка без изменения имени / местоположения файла значка, т. Е. При замене содержимого файла значка: тогда снова новый значок будет виден только после перезапуска или входа пользователя в систему.)

Ура!

0

Похоже, вы пропустили добавление подраздела DefaultIcon . Затем...

Присвойте подразделу DefaultIcon значение по умолчанию типа REG_SZ, в котором указан полный путь к файлу, который содержит значок.

Из ресурсов разработчика Microsoft - Как назначить пользовательский значок для типа файла

Затем вы должны вызвать обновление кэша значков. Вместо полной перестройки кэша, REFRESH - это простой способ сделать это, выполнив следующую команду из диалога Run .

Для Windows 10; ie4uinit.exe -show

Для Windows 7 и 8; ie4uinit.exe -ClearIconCache

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .