我制作了一个自定义目录树控件,它使用从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不变?如果不是 - 什么是更好的方法?
答案 0 :(得分:5)
获取图标的正确方法是使用SHGetStockIconInfo
。它会告诉您当前版本的Windows中图标的位置。
如果您需要系统的当前文件夹图标(由于用户自定义而可能不是标准图标),请使用SHGetFileInfo
。