2

別のexeファイルのDelphiバージョン情報を更新できる小さなツールをDelphiで作成したいと思っていました。このためにいくつかの既存のユーティリティが存在することは知っていますが、完全なプログラムによる制御が必要であり、コマンドラインなどへのシェルアウトを望まないでしょう。

Web検索後、exeファイルのバージョン情報を変更するDelphiソースコードの例が見つかりませんでした。誰かがコードや指示を提供できますか?

4

2 に答える 2

7

完全な回答はできませんが、始めることはできます。DelphiDabbler.comに、ファイルからバージョン情報を取得する方法を説明した記事があります。GetFileVersionInfoそれを行うための Windows API です。それを設定するにUpdateResourceは、Windows API 関数を使用する必要があると思います。C を使用してこれをカバーする CodeProject の別の記事がありますが、何を行う必要があるかについて確かなアイデアが得られるはずです。

幸運を!

編集: 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 Resource Editorのソース コードも参考になるかもしれません。

于 2009-04-18T15:30:06.783 に答える