使用Delphi修改另一个delphi程序的版本信息

lga*_*ion 2 delphi version

我想在Delphi中创建一个小工具,可以在另一个exe文件中更新Delphi版本信息.我知道有几个现有的实用工具,但是我需要完全的程序控制,并且不希望在命令行中进行shelling等.

在网络搜索后,我找不到任何Delphi源代码修改exe文件中的版本信息的例子,任何人都可以提供一些代码或方向吗?

Tim*_*van 7

我不能给出完整的答案,但我可以帮助你.DelphiDabbler.com上有一篇文章说明了如何从文件中获取版本信息.GetFileVersionInfo是Windows API来做到这一点.要设置它,我相信UpdateResource是您需要使用的Windows API函数.CodeProject上还有另一篇文章,使用C来介绍它,但它应该让你对需要做什么有充分的了解.

祝好运!

编辑:我在Delphi新闻组上找到了一些可能会给你更多帮助的代码:

// Credit to Michael Winter for this code!
Sz := GetLen;
GetMem(Data, Sz);
try
  GetData(Data, Sz);
  HFile := BeginUpdateResource(PChar(FileName), false);
  if HFile = 0 then
    RaiseLastWin32Error;
  DoDiscard := true;
  try
    if not UpdateResource(HFile, RT_VERSION, PChar(1), 0, Data, Sz) then
      RaiseLastWin32Error;
    DoDiscard := false;
  finally
    if not EndUpdateResource(HFile, DoDiscard) then
      RaiseLastWin32Error;
  end;
finally
  FreeMem(Data);
end;
Run Code Online (Sandbox Code Playgroud)

这只是一个片段,需要你做一些工作,但这是最重要的工作!