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