繁体   English   中英

UpdateResource失败...我在做什么错?

[英]UpdateResource fails…what i am doing wrong?

我正在尝试更新exe中的位图。 我打开了资源黑客,发现资源名称是6801,所以我想出了这段代码

ResUpdate:=BeginUpdateResource(Pchar(szExplorer),false);
ShowMessage(SysErrorMessage(GetLastError));
if ResUpdate<>0 then
begin
  FS:=TFileStream.Create(szBitmap,fmOpenRead or fmShareDenyWrite);
  SetLength(thebmp,FS.Size);
  dwSize:=FS.Size;
  FS.ReadBuffer(thebmp[0],FS.Size);
  FS.Free;
  UpdateResource(ResUpdate,RT_BITMAP,MAKEINTRESOURCE(6801),LANG_SYSTEM_DEFAULT,@thebmp[0],dwSize);
  EndUpdateResource(ResUpdate,false);
end;

对UpdateResource的调用失败。 我哪里错了?

我不知道您为什么说对UpdateResource的调用失败。 您要检查的唯一结果是BeginUpdateResource ,该结果显然失败,错误代码为50, Error_Not_Supported

基于资源号和包含要更新文件的变量名,我认为您正在尝试修改Windows资源管理器的“开始orb”位图。 API文档告诉您,您需要能够对要更新的文件进行写访问,尤其是要更新的文件当前无法运行 在尝试修改资源管理器之前,请确保关闭它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM