【问题标题】:Get Icon info from the executable file?从可执行文件中获取图标信息?
【发布时间】:2010-11-11 05:07:53
【问题描述】:

我正在尝试使用以下 API 从 .exe 文件中获取图标:
SHGetFileInfoW() SHGetImageList() 和 ImageList 这样获得,我通过调用 GetIcon() 读取图标。

当机器的颜色深度设置为 32 位时,我得到 32 位颜色图标。问题是当我将机器的颜色深度更改为 24 位或 16 位时,我得到一个 16 位颜色图标,并且该图像似乎已损坏。

我还检查了一些常见的 Windows 应用程序(记事本、绘画等)和一些办公应用程序中的可用图标列表,没有一个有 16 位或 24 位颜色图标。

从可执行文件中获取正确图标的最佳方法是什么?

谢谢!

【问题讨论】:

    标签: windows icons gdi winapi


    【解决方案1】:

    您可以使用 LoadLibraryEx 加载 exe,然后使用 LoadImage 提取图标 - 或者 - 如果您想直接访问图标数据:FindResource、LoadResource、LockResource 将为您提供指向图标资源位的指针。

    【讨论】:

    • exe 可能有一堆 ICON 图像,我如何选择所需的图标,比如颜色深度为 32 的图标?
    • 如果您使用的是LoadImage,那么它将根据您的LoadImage参数选择正确的一个。如果您使用的是 LoadResource,那么您需要知道每个 Icon 文件对应一个 RT_ICON_GROUP 资源,该资源又指向各个 RT_ICON 资源,每个资源对应 ico 文件中支持的每个设计深度。类似的东西。
    猜你喜欢
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    相关资源
    最近更新 更多