Вытащить ассоциированную иконку по FTP

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Вытащить ассоциированную иконку по FTP

Сообщение Lumen » 05.02.2008 (Вт) 6:03

Здравствуйте!
Как можно вытащить ассоциированную иконку из файла, если он находится на удаленной машине. Есть доступ по фтп. Вариант скачать его и воспользоваться SHGetFileInfo не подходит, я не думаю что в проводнике или в Total Commander'e данная вещь реализована настолько криво. Да и нагрузки на сеть при их работе особо не наблюдается. Какие есть варианты решения задачи?
Спасибо.
Подпись проходит рефакторинг

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 05.02.2008 (Вт) 10:54

Кажется разобрался. Скорее всего сначала определяется расширение файла, потом в реестре определяется тип этого файла, а потом из ветки с типом читается путь к иконке по умолчанию, и уже по этому пути загружается иконка (из файла ico или icl, или же вообще из ресурсов exe, dll файла). Кроме этого есть ещё какие-нить варианты?
Подпись проходит рефакторинг

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 05.02.2008 (Вт) 19:43

Только загрузить файл с сервера к себе на машину, что не есть гуд

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 05.02.2008 (Вт) 23:03

Не, мне тут ещё вариант предложили. ИМХО самый рациональный. То есть после вызова InternetFindNextFile мы получили структуру FindData. Выдираем оттуда расширение, создаем во временном каталоге файл с точно таким же расширением, натравливаем на нее SHGetFileInfo и так как нам нужна только иконка, то выдергиваем её и радуемся жизни... :)
Подпись проходит рефакторинг

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 05.02.2008 (Вт) 23:26

Ну, это способ (если сработает) подходит только для типов со связанными иконками. А для файлов с внутренними иконками, типа тех же ехе и ico - не подойдет? вернее показывать то будет но однообразные системные значки.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 06.02.2008 (Ср) 0:12

Денис
Если повнимательнее приглядеться как тот же Explorer или Total Commander работает с FTP, то можно заметить, что EXE файлы отображаются в виде значков досовских программ. ICO тоже не вытаскивается. Видимо оптимальнее ничего не придумали...
Подпись проходит рефакторинг


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 90

    TopList