【问题标题】:Getting icons out of DLL从 DLL 中获取图标
【发布时间】:2009-07-13 20:51:44
【问题描述】:

我从第三方库获得以下内容(一个示例):

@%SystemRoot%\SomePath\SomeFile.Dll,-203

我从上下文中知道这是一个图标。我的问题是,我将如何获取这些“地址”并实际提取数据?

在相关说明中,我还想知道从普通 EXE 中拉出显示的(从 shell 中的)图标的最佳方法。

我正在使用 C#,但我也可以使用 C 或 C++ 示例。

【问题讨论】:

  • 明确地说,您想以编程方式执行此操作,对吗?对于“交互式”使用,您可以在 Visual Studio 中打开可执行文件或 dll 并提取资源。
  • 是的,路径和索引改变了;并且引用的文件(通常)不属于我的应用程序。

标签: c# windows dll icons


【解决方案1】:

对于 EXE,您应该调用 SHGetFileInfo API 函数并指示您需要该图标。此函数将检查可以提供图标的所有不同方式(在文件中,通过 shell 扩展等)。

对于您从第三方库获取的内容,您可以调用 ExtractIconEx API 函数,传递文件名(第一部分)和索引(第二部分)。

【讨论】:

    【解决方案2】:

    如果您使用reflector,您可以准确地看到这些东西的存储位置。 (如果它是一个兼容的 dll)。过去它帮助我获得了嵌入式资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      相关资源
      最近更新 更多