Einzelnen Beitrag anzeigen

Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

UpdateResource ändert FileVersion nicht

  Alt 23. Jun 2008, 21:06
Guten Abend,

ich versuche schon längere Zeit die Dateieigenschafen für die Version einer exe-Datei zu ändern, aber nicht während diese läuft. Das Auslesen mit GetFileVersionInfoSize, GetFileVersionInfo und VerQueryValue funktioniert super.

Nun wollte ich mit folgenden Code die Infos ändern, das einzigste was sich ändert ist die Größe der Datei. Folgender Code ist einer von vielen Versuchen.
Delphi-Quellcode:
procedure TForm1.SetFileVersion(const FileName: String);
var
 VersionInfoSize : LongWord;
 Dummy : LongWord;
 hFile : THandle;
 Value : String;

begin
 Dummy := 0;
 VersionInfoSize := GetFileVersionInfoSize(PChar(FileName), Dummy);
 if VersionInfoSize > 0 then
  begin
   hFile := BeginUpdateResource(PChar(FileName), False);
   if hFile <> 0 then
    begin
     Value := '1.0.0.0';
     UpdateResource(hFile, MAKEINTRESOURCE(RT_VERSION), MAKEINTRESOURCE(1), MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN), PChar(Value), SizeOf(Value));
EndUpdateResource(hFile, False);
    end;
  end;
end;
Das Handle ist nicht leer also müsste doch eigentlich eine Änderung in den Eigenschaften zu sehen sein?

Wär nett, wenn jemand eine funktionierende Lösung hätte. ich weis nicht genau wie es nun richtig ist, weil ich schon so viele verschiedene Möglichkeiten gesehen habe und nach der msdn müsste es ja so sein wie ich es habe.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat