我可以信任imageres.dll系统图标索引吗?

时间:2015-08-12 20:59:25

标签: windows winapi

我制作了一个自定义目录树控件,它使用从imageres.dll文件中提取的系统图标。我的意思是该文件是从Windows目录中读取的,因此根据Windows版本,将有多个版本的文件。

这是确切的C#片段:

ImageList.Images.Add("Folder", ExtractSystemIconBitmap("imageres.dll", 4));
ImageList.Images.Add("File", ExtractSystemIconBitmap("imageres.dll", 2));

在我的Windows 10上它看起来没问题,但它能用于不同的Windows版本,如Vista,7,8和8.1吗?

我的程序至少需要运行Windows Vista(由于依赖于.NET Framework 4.5)。

更准确的问题是 - 那些图标索引是否从Windows Vista到Windows 10不变?如果不是 - 什么是更好的方法?

1 个答案:

答案 0 :(得分:5)

获取图标的正确方法是使用SHGetStockIconInfo。它会告诉您当前版本的Windows中图标的位置。

如果您需要系统的当前文件夹图标(由于用户自定义而可能不是标准图标),请使用SHGetFileInfo