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