怎样提取一个Exe文件的字符串资源?

xthmpro_cn 2005-03-13 09:29:34
我用下面的方法提取不到,只完成了一半的功能,请大家指点一下:
Function EnumResName(hModule: HMODULE; lpType, lpName: PChar;lParam: Longint):BOOL;stdcall;

procedure TForm1.btn1Click(Sender: TObject);
begin
EnumResourceNames(0, RT_STRING, @EnumResName, 0);
end;

Function EnumResName(hModule: HMODULE; lpType, lpName: PChar; lParam: Longint):BOOL; //回var
ResString: String;
hResource: HRSRC;
hglob: HGLOBAL;
Buffer: array [0..1023] of char;
Begin
result := True;
if lpType <> RT_STRING then exit;
//
hResource:=FindResource(hModule, lpName, RT_STRING);
//
hglob:=LoadResource(hModule, hResource);

SetString(ResString, Buffer,
LoadString(FindResourceHInstance(hModule), hglob, Buffer, SizeOf(Buffer)));
Form1.ValueListEditor1.Strings.Add(Format('%s=%s', [IntToStr(Integer(lpName)), ResString]))

//Form1.ValueListEditor1.Strings.Add(Format('%s=%s', [IntToStr(Integer(lpName)), IntToStr(Integer(hResource))]))
end;

...全文
395 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xthmpro_cn 2005-03-20
  • 打赏
  • 举报
回复
可以了,但是没有找解压的,我们的要求不同!谢谢各位!
王集鹄 2005-03-17
  • 打赏
  • 举报
回复
如果被AsPack压缩,找个解压缩的不就结了
xthmpro_cn 2005-03-14
  • 打赏
  • 举报
回复
请多看一眼!
caiso 2005-03-14
  • 打赏
  • 举报
回复
顶一下
xthmpro_cn 2005-03-14
  • 打赏
  • 举报
回复
的确是可以,但是无法取出具体资源的ID,这里得到的lpszName是String Table 的所有字符串。我需要每个字符串的具体ID,谢谢。
我努力看看这个Demo
C:\Program Files\Borland\Delphi6\Demos\ResXplor
王集鹄 2005-03-13
  • 打赏
  • 举报
回复
//参考如下代码
function EnumResName(
hModule: HMODULE;
lpszType: LPCTSTR;
lpszName: LPTSTR;
lParam: Longint
): BOOL; stdcall;
var
hResource: HRSRC;
hglob: HGLOBAL;
vPointer: PWideChar;
Begin
Result := True;
hResource := FindResource(hModule, lpszName, RT_STRING);
hglob := LoadResource(hModule, hResource);
try
vPointer := LockResource(hglob);
TForm1(lParam).ValueListEditor1.InsertRow(IntToStr(Integer(lpszName)),
vPointer, True);
finally
UnlockResource(hglob);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumResourceNames(HInstance, RT_STRING, @EnumResName, Integer(Self));
end;
王集鹄 2005-03-13
  • 打赏
  • 举报
回复
建议你看看这个Demo

C:\Program Files\Borland\Delphi6\Demos\ResXplor
caiso 2005-03-13
  • 打赏
  • 举报
回复
顶一下

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧