Пользовательский значок для экземпляра файла - PullRequest
1 голос
/ 25 марта 2009

Некоторые программы Windows могут использовать разные значки для разных файлов с одинаковым расширением.

Пример

  • .sln может отображать другой значок в зависимости от версии Visual Studio, в которой было создано решение (на самом деле, определяется номером версии в верхней строке в .sln)
  • Файлы Photoshop .psd имеют значки с уменьшенным изображением
  • Файл ярлыка .url имеет значок страницы, если он открыт или сохранен в Internet Explorer

Полагаю, это должно быть только для этого компьютера. На коробке без установленной Visual Studio файлы .sln просто имеют значок по умолчанию «Я не знаю эту программу». Есть ли что-то, что нужно изменить в реестре?

Как я могу это сделать? Я хотел бы иметь возможность связывать пользовательские значки с файлами в моих собственных программах.

[Редактировать] Я действительно мог бы сделать это в управляемом коде. Это возможно ( \ Samples \ Technologies \ Interop \ Applications \ ShellCmd), но оно также потенциально опасно и не подходит для практической работы: http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/1428326d-7950-42b4-ad94-8e962124043e/. Я действительно надеялся, что у MS сейчас будет хороший управляемый API для такого рода вещей.

1 Ответ

3 голосов
/ 25 марта 2009

Проверьте этот код C ++ на CodeProject : по сути, вы пишете обработчик COM и регистрируете его для своего расширения. Имейте в виду, что вы можете очень сильно испортить процесс Explorer, если утечка ресурсов в обработчиках значков или расширениях оболочки ... C ++ может быть проблемой, но я бы не рекомендовал делать это в C # или Java из-за потребления памяти ( отдельная копия кода платформы для каждого расширения / обработчика!).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...