我正在构建一个 HTA 应用程序,我需要在其中显示文件列表及其关联的系统图标。
我FileSystemObject
用来列出文件,但似乎没有办法获取图标...
我在 VBS 中找到了一个脚本,可以将文件的图标保存到 .ico 中。
它读取文件(PE 资源文件、.exe 或 dll)并解析图标数据。我修改了该脚本以返回图标的字节,将其转换为 base64 并在 HTML 中使用嵌入 base64 图像。这是原始脚本: http: //gilpin.us/IconSiphon/
问题
) 在大多数情况下,.ico 包含多个图标(许多尺寸和颜色深度),但我无法指定使用哪一个(因为我需要 16x16 图标)。
) 并非所有图标都显示
) 在读取 exe 和 dll 时可能会出现很多文件的速度很慢(但我可以接受,我可以缓存已经获取的图标)
我也尝试了一些 ActiveX 控件,但似乎没有一个可以正常工作。即使是微软提供的那些(ShellFolderView 或 ListView)也有很多错误。
要求
必须显示 16x16 图标
必须允许多个文件选择
一切都必须嵌入到 hta 中(如果可能的话)。没有外部.exe
有谁知道实现这一目标的方法?
谢谢!