Как получить связанный значок файла в HTA (HTML / Javascript / VBScript)

Я создаю приложение HTA, в котором мне нужно отобразить список файлов с их связанной системой значок.
Я использую FileSystemObject , чтобы перечислить файл, но, похоже, у меня нет способа получить значок ...

Я нашел сценарий в VBS, который может сохранять значок файла в .ico.
Он читает файл (файл ресурсов PE, .exe или dll) и анализирует данные значка. Я изменил этот сценарий, чтобы вернуть байты значка, преобразовать его в base64 и использовать встраивание изображений base64 в HTML. Вот исходный сценарий: http://gilpin.us/IconSiphon/

Issue

  1. ) В большинстве случаев .ico содержит несколько значков (разных размеров и глубины цвета), но я не могу указать, какие один для использования (так как мне нужны значки размером 16x16).

  2. ) Отображаются не все значки

  3. ) Могут быть медленные со многими файлами, так как они читают exe и dll (но меня это устраивает, я могу кешировать уже загруженные значки)

Я также пробовал Элемент ActiveX, но, похоже, не работает должным образом. Даже те, которые предоставляются Microsoft (ShellFolderView или ListView), содержат много ошибок.

Требования

  • Должен отображаться значок 16x16

  • Должен быть разрешен выбор нескольких файлов

  • Все должно быть встроено в hta (если возможно). Нет внешнего .exe

Кто-нибудь знает способ добиться этого?

Спасибо!

13
задан Dr.Molle 26 August 2011 в 01:44
поделиться