Я создаю приложение HTA, в котором мне нужно отобразить список файлов с их связанной системой значок.
Я использую FileSystemObject
, чтобы перечислить файл, но, похоже, у меня нет способа получить значок ...
Я нашел сценарий в VBS, который может сохранять значок файла в .ico.
Он читает файл (файл ресурсов PE, .exe или dll) и анализирует данные значка.
Я изменил этот сценарий, чтобы вернуть байты значка, преобразовать его в base64 и использовать встраивание изображений base64 в HTML.
Вот исходный сценарий: http://gilpin.us/IconSiphon/
Issue
) В большинстве случаев .ico содержит несколько значков (разных размеров и глубины цвета), но я не могу указать, какие один для использования (так как мне нужны значки размером 16x16).
) Отображаются не все значки
) Могут быть медленные со многими файлами, так как они читают exe и dll (но меня это устраивает, я могу кешировать уже загруженные значки)
Я также пробовал Элемент ActiveX, но, похоже, не работает должным образом. Даже те, которые предоставляются Microsoft (ShellFolderView или ListView), содержат много ошибок.
Требования
Должен отображаться значок 16x16
Должен быть разрешен выбор нескольких файлов
Все должно быть встроено в hta (если возможно). Нет внешнего .exe
Кто-нибудь знает способ добиться этого?
Спасибо!