【问题标题】:how to extract all icons from some exe files and insert them to other exe files using Delphi?如何从某些exe文件中提取所有图标并使用Delphi将它们插入到其他exe文件中?
【发布时间】:2011-09-05 13:05:36
【问题描述】:

我正在使用德尔福。 我想知道如何从 exe 文件中提取(全部)图标并将它们插入到另一个文件中,同时保留图标的顺序和索引。 我使用 Google 找到了一些 Delphi 代码示例,但问题是它没有将它们全部提取出来。 而且我发现了一些编译程序(exes)可以做一个或另一个,但不能两者兼而有之。 为什么我需要这个:因为我必须从虚拟化应用程序中启动一些 exe 文件(具有这些图标)。我想制作一些具有相同名称和相同图标的外部 exe 文件。 感谢您的帮助。

【问题讨论】:

  • 我认为你需要一个资源编辑器。
  • 您不能只修复您找到的代码,以便提取所有图标而不是其中一些图标吗?如果你找到了做某部分的程序,并且你找到了做另一部分的程序,那么是什么阻止你将它们组合成一个同时做这两个部分的程序呢?请更具体地说明您在任务的哪一部分遇到问题。
  • 很抱歉没有尽快回复,但我已经好几个小时没有互联网连接了...@Rob,我试过了,但是使用的 Api 函数/程序无法做到这一点...跨度>
  • @Rob 我发现程序是 exe(我将它们命名为“已编译”,如果这样做是错误的,请原谅)那么我怎样才能将它们组合成一个......?
  • 提取单个图标很容易(请参阅stackoverflow.com/questions/3813845/…),但提取它们可能需要您至少从资源编辑器中借用代码,如下面的答案所示,以枚举资源。跨度>

标签: delphi icons


【解决方案1】:

源代码可用于 Colin Wilson 的 XN 资源编辑器。它应该有你需要的东西。 http://www.wilsonc.demon.co.uk/d10resourceeditor.htm

【讨论】:

  • 现在我可以访问链接了。该程序似乎运行良好,但需要一些工作来提取我需要的代码......
【解决方案2】:

或者,您有 Delphi 示例“ResXplor”。如果它没有在您的版本中分发,也可以在此处下载:http://radstudiodemos.svn.sourceforge.net/viewvc/radstudiodemos/branches/RadStudio_XE/Delphi/VCL/resXplor/

【讨论】:

  • 在我的Delphi(7)版本中编译不好:[Error] HexDump.pas(468): Operator not applicable to this operand type [Error] HexDump.pas(483): Array type必需 [错误] HexDump.pas(495): 运算符不适用于此操作数类型 [致命错误] RXMain.pas(12): 无法编译使用的单元 'HexDump.pas' 我将尝试更新版本...
  • 我在较新版本的 Delphi 中编译。问题是看不到他们。例如,在一个“分支”中,它将所有这些都视为 32x32x32。我试图提取其中的几个,它与最后一点是同一个文件......
【解决方案3】:

有一个关于提取图标的similar question。 PrivateExtractIcons 让您可以访问图标资源中的特定图像大小,但您需要提前知道大小,Microsoft 警告此方法为not for general use

有一个working example 在 Delphi Praxis 上提取具有所有图像大小的整个图标资源。该示例存在 256 像素图像的问题,因此必须对其进行调整以解决这些问题。

【讨论】:

  • 对于单个图标非常有用,但似乎 OP 想要枚举所有资源,因此 PrivateExtractIcons 只会得到一个。当然,既然这是主要的,它似乎是一个很好的起点!
  • 就像我说的,我会避免使用 PrivateExtractIcons。您可以枚举 RT_GROUP_ICON 资源并为每个资源使用 Delphi Praxis 示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
相关资源
最近更新 更多