关于替换程序(其他程序)中的位图资源的问题(100分)

  • 主题发起人 主题发起人 木柯
  • 开始时间 开始时间

木柯

Unregistered / Unconfirmed
GUEST, unregistred user!
我用以下代码实现替换某个程序中的位图,运行后,可以替换其他程序里的位图,却发现了一个很奇怪的问题:比如说我把 kk.exe 中的第100号图片换成一个小猫, 用ResHacker可以查看kk.exe中第100号为小猫,但是同样用exeScope就不能打开100号位图,提示说流读取错误。代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var
FS:TFileStream;
buffer:pchar;
hUpdateRes:THandle;
Result:boolean;
begin
if OPenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OPenPictureDialog1.FileName);
FS:=TFileStream.Create(OPenPictureDialog1.FileName,fmOPenRead);
GetMem(buffer,FS.Size);
FS.Read(buffer^,fs.Size);
Edit1.Text:=IntToStr(mm);
hUpdateRes:=BeginUpdateResource(Pchar(OpenDialog1.FileName),false);
if(hUpdateRes=0) then
begin
MessageBox(0,pchar('Error to begin update resource.'),pcha (Application.Title),MB_ICONERROR);
exit;
end;
result:=UpdateResource(hUpdateRes,RT_BITMAP,MAKEINTRESOURCE(100),1033,buffer,fs.Size);
if result = false then
Messagebox(0,'Error','',MB_IconInformation+MB_OK);

if not EndUpdateResource(hUpdateRes,false) then
begin
MessageBox(0,pchar('Error to end update resource.'),pchar(Application.Title),MB_ICONERROR);
exit;
end;

FreeMem(buffer);

fs.Free;

result:=true;
end;

end;

而且那个小猫的图片无法再用LoadBitmap(Hpic,MAKEINTRESOURCE(i)) 取出来。
请教各位到底是那里出了问题呢? 请各位不吝赐教。
 
抱歉,我自己解决了。。。。。。。。
 
真的!恭喜
桑分
 

Similar threads

I
回复
0
查看
675
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
571
import
I
后退
顶部