Windows 是否从可执行文件中获取图标信息?
我正在尝试使用以下API从.exe文件获取图标:Windows 是否从可执行文件中获取图标信息?,windows,icons,gdi,winapi,Windows,Icons,Gdi,Winapi,我正在尝试使用以下API从.exe文件获取图标: SHGetFileInfoW()SHGetImageList(),从由此获得的ImageList中,我通过调用GetIcon()读取图标 当机器的颜色深度设置为32位时,我会得到32位的颜色图标。问题是,当我将机器的颜色深度更改为24或16位时,我会得到一个16位的颜色图标,而此图像似乎已损坏 我还检查了一些常用windows应用程序(记事本、油漆等)和一些office应用程序中的可用图标列表,没有一个有16位或24位彩色图标 从可执行文件中获取
SHGetFileInfoW()SHGetImageList(),从由此获得的ImageList中,我通过调用GetIcon()读取图标 当机器的颜色深度设置为32位时,我会得到32位的颜色图标。问题是,当我将机器的颜色深度更改为24或16位时,我会得到一个16位的颜色图标,而此图像似乎已损坏 我还检查了一些常用windows应用程序(记事本、油漆等)和一些office应用程序中的可用图标列表,没有一个有16位或24位彩色图标 从可执行文件中获取正确图标的最佳方法是什么
谢谢 您可以使用LoadLibraryEx加载exe,然后使用LoadImage提取图标-或者-如果您希望直接访问图标数据:FindResource、LoadResource、,LockResource将为您提供一个指向图标资源位的指针。exe可能有一组图标图像,我如何选择所需的图标(例如颜色深度为32的图标)?如果您使用的是LoadImage,则它将根据LoadImage的参数选择正确的图标。如果您使用的是LoadResource,则需要知道每个图标文件对应一个RT_图标组资源,该组资源依次指向各个RT_图标资源,ico文件中支持的每个设备深度对应一个。差不多吧。