对于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已经打包下载
迅雷专用高速下载