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.