您现在的位置:首页 >> 基础算法 >> window基础 >> 内容

Delphi中使用ResourceUtil获取程序内的RCData资源

时间:2011/9/3 15:32:39 点击:

  核心提示:对于Delphi程序来说,它的RCData是一个宝库,因为里面记录着与窗体有关的一切信息我们从PE是直接读出RCData时,它是一片二进制的数据,没有可读性,也更不用说修改了但是ResourceUti...

对于Delphi程序来说,它的RCData是一个宝库,因为里面记录着与窗体有关的一切信息
我们从PE是直接读出RCData时,它是一片二进制的数据,没有可读性,也更不用说修改了
但是ResourceUtil为我们提供了这个方便,下面就来看一下,如何用ResourceUtil来获取RCData

function GetRCDataCode(AFileName: string; RCName: string): string;
var
PE: TPEResourceModule;
RC: TRCDataFormResourceDetails;
begin
PE := TPEResourceModule.Create;
PE.LoadFromFile(AFileName);
try
    RC := TRCDataFormResourceDetails(PE.FindResource('10', RCName, 0));
    Result := RC.Text;
except
    Result := EmptyStr;
end;
PE.Free;
end;

在这个方法里,通过传入可执行文件名,以及资源名,就可以获取到RCData的内容了
当然也可以写,修改后,通过Text属性再写回去就好了。

如果要获取资源的名称列表,也很简单,便用以下代码:
var
PE: TPEResourceModule;
i: Integer;
begin
PE := TPEResourceModule.Create;
PE.LoadFromFile(AFileName);
for i := 0 to PE.ResourceCount - 1 do
begin
    // PE.ResourceDetails[i]
end;
end;

通过以上的代码就能够遍历一个程序的资源了,找到ResType为RCData的,并比对资源名称就能找到自己想要的内容
当然了,更好的做法是用一个递归来列出所有的资源。

ResourceUtil已经打包下载



迅雷专用高速下载

作者:网络 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 盒子文章(www.2ccc.com) © 2019 版权所有 All Rights Reserved.
  • 沪ICP备05001939号