如何删除一个文件里面的资源,比如a.exe文件的RT_RCDATA类型下有一个名为LOVE的资源,如何删除并可以减少原文件大小?
我测试代码如下:function DeleteResource(const FileName: string; const ResType, ResName: PChar): Boolean;
var
hUpdate: Cardinal;
begin
Result:= False;
hUpdate:= BeginUpdateResource(PChar(FileName), False);
if hUpdate = 0 then Exit;
try
Result:= UpdateResource(hUpdate, ResType, ResName, 0, nil, 0);
finally
EndUpdateResource(hUpdate, not Result);
end;
end;procedure TForm1.Button7Click(Sender: TObject);
begin
if DeleteResource('a.exe',RT_RCDATA,'LOVE') then
ShowMessAge('OK')
else ShowMessAge('Err');
end;测试后,名为LOVE的资源确实是删除了,但是体积没有减少...
我用ResHacker删除资源,体积是会根据所删除的资源大小而减少的.
有那位可以帮忙解决实现ResHacker的删除效果!致谢!
我测试代码如下:function DeleteResource(const FileName: string; const ResType, ResName: PChar): Boolean;
var
hUpdate: Cardinal;
begin
Result:= False;
hUpdate:= BeginUpdateResource(PChar(FileName), False);
if hUpdate = 0 then Exit;
try
Result:= UpdateResource(hUpdate, ResType, ResName, 0, nil, 0);
finally
EndUpdateResource(hUpdate, not Result);
end;
end;procedure TForm1.Button7Click(Sender: TObject);
begin
if DeleteResource('a.exe',RT_RCDATA,'LOVE') then
ShowMessAge('OK')
else ShowMessAge('Err');
end;测试后,名为LOVE的资源确实是删除了,但是体积没有减少...
我用ResHacker删除资源,体积是会根据所删除的资源大小而减少的.
有那位可以帮忙解决实现ResHacker的删除效果!致谢!
解决方案 »
- hook 取分辨率的API
- dbgrideh HideDuplicates :=True 时如何让选中的行全行颜色变色?
- 一个令人发昏的窗体问题,折磨我好久了,请教有经验的前辈指点。
- DLL 和应用程序之间的消息传递
- 怎么在drawgrid中写文字?
- 在DELPHI7.0中如何实现出生日期统计直方图
- 子窗体为什么不能关闭!!
- 时间计算的问题
- 请问谁做过串口的磁卡密码键盘的编程??
- 各位大虾:听过"金石软件"吗?
- 请问PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE)及KillMessage(Windows.HWND_DESKTOP, Msg.Message)是什么意思?
- 请问TXP_IPEdit是哪个控件包的?
使用UpdateResource函数,资源确实是删除了,但并没有减少体积.我希望在删除资源同时也可以减少体积.
哪位对PE文件结构熟悉的,帮忙一下...