2

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

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

4

2 回答 2

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;

这只是一个片段,需要您做一些工作,但这是大部分工作!

于 2009-04-18T04:17:12.160 回答
3

还有 Colin Wilson 的带有源代码的XN 资源编辑器可能会有所帮助。

于 2009-04-18T15:30:06.783 回答