我正在使用 SHGetFileInfo api获取句柄并显示与特定文件关联的图标。
如果文件没有与之关联的图标,Windows将返回它在资源管理器中用于未知文件类型的默认文件。在这种情况下,我不想要显示图标。
如何判断文件是否没有关联图标,Windows是否还给了我一个默认文件?
在我的系统中,SHFILEINFO.iIcon
在这种情况下始终等于3,但我不确定它有多可靠,我希望有更好的方法来检查它。
编辑:我的目标是Windows XP及以上版本
由于
答案 0 :(得分:1)
您定位的是哪个操作系统版本?如果您可以假设Vista及更高版本,那么您可能会发现有用的API SHGetStockIconInfo。
SHGetStockIconInfo(SIID_DOCNOASSOC, SHGSI_SYSICONINDEX, &sii)
将返回您在sii.iSysImageIndex中寻找的图标索引。
答案 1 :(得分:0)
您可以尝试将带有未知扩展名的虚构文件名传递给SHGetFileInfo(),跟踪它报告的图标索引,然后将该索引与真实文件进行比较。