Конференция "WinAPI" » Получить иконку связанную с недоступным в сети файлом [D7, WinXP]
 
  • roughneck (18.09.08 11:01) [0]
    Проблема получить иконку связанную с определенным файлом или папкой.
    SHGetFileInfo - работает отлично, но только если есть доступ к файлу или папке. А как быть если файл не доступен (SHGetFileInfo - виснет).
  • KilkennyCat © (18.09.08 11:24) [1]
    нет файла - нет иконки. если конечно, они не хранятся как у офиса, где-то в perfetchчегототам
  • roughneck (18.09.08 11:58) [2]
    вот например, ярлык на \\server\h$ получит иконку даже если  \\server не доступен.
    а как получать из perfetchчегототам? и чего там ваще есть?
  • clickmaker © (18.09.08 12:04) [3]
    SHGetFileInfo

    SHGFI_USEFILEATTRIBUTES
    Indicates that the function should not attempt to access the file specified by pszPath

    (c) MSDN
  • KilkennyCat © (18.09.08 12:21) [4]

    > вот например, ярлык на \\server\h$ получит иконку даже если
    >  \\server не доступен.

    так это системная иконка расшаренного ресурса, как я понимаю. берется откуда-нить из shell32.dll

    > а как получать из perfetchчегототам? и чего там ваще есть?

    http://askbobrankin.com/windows_prefetch.html
    кроме того, где-то я читал, что некоторые приложения, например офис, вроде бы с 2003 версии, хранят там иконки.
  • roughneck (18.09.08 12:22) [5]
    здорово. Только теперь на любую папку отображается иконка для неизвестного типа файлов.
  • kami © (18.09.08 22:06) [6]
    > Только теперь на любую папку отображается иконка для неизвестного
    > типа файлов

    FILE_ATTRIBUTE_DIRECTORY в dwFileAttributes
  • GrayFace © (25.09.08 12:54) [7]
    Еще можно запрашивать показ иконки в отдельном потоке. Пока не загрузится, показывать, что недоступна. Дома смогу дать пример. И еще, кроме SHGetFileInfo есть интерфейс (название щас не помню), который возвращает иконки быстрее и иногда иконку можно достать только через него - например, для файлов на ftp.
 
Конференция "WinAPI" » Получить иконку связанную с недоступным в сети файлом [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0]