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