200分:如何获取收藏夹中各个项目的图标?
如题,IE收藏夹中的各个快捷方式的图标如何提取?
终极目标:用程序实现,如我们眼睛看到的一样,这个项目是否已经有网站图标,如果有网站图标,如何获得这个图标。
打开收藏夹目录,可以看到各个快捷方式,一般情况下,有两种情况:1、图标为该快捷方式的网址指向的网站图标;2、图标为IE默认图标。
本来有一个办法:获取该项目在系统图像列表中的索引。但这有个严重的问题:也许由于多个程序修改注册表后造成URL类型关联混乱,这些还没有网站图标的项目(如果一切正常,将是IE默认网页图标,此时获取系统图标就没有任何问题),其图标将千奇百怪,或是系统无法识别的那种,或是其他软件修改后的某个图标。
在缓存目录x:\……AppData\Local\Microsoft\Windows\Temporary Internet Files中,可以看到一切名称均为favicon.ico的一些图标,其网址可以区分(虽然我目前还不知道怎么获取这些内容的网站,如果用枚举的话,也许效率太低),但可以看到这里的图标并不全,即从收藏夹目录看到有的图标,但在这个Temporary Internet Files里面没有……
所以非常的困惑……
[解决办法]
直接从收藏夹视图里面截图?
[解决办法]
有一个软件可以获取EXE的图标。网页的图标。。。不知道。
[解决办法]
http://xuyongfei999.blog.163.com/blog/static/9237010200824112253816/
根据这个文章,服务器根目录下有一个favicon.ico的文件,才可以在收藏夹里面显示图标。是否可根据这个形成一个思路?去url的根目录下查找该文件,有的就有图标了……
[解决办法]
看网页的源文件,有类似下面的一行:
<link rel="shortcut icon" href="/favicon.ico" />
然后下载之
但,有一些网站不按套路出牌,那个我就不知道了。问问js高手试试
[解决办法]
试试搜索下SHGetFileInfoA, DrawIconEx等api,windows 2003 下可以。