Einzelnen Beitrag anzeigen

delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#1

EXE FileVersion auslesen

  Alt 24. Sep 2011, 18:17
Delphi-Version: XE
Hallo ich habe auf einmal das Problem (weiss nicht ob es an XE o. W/ liegt habe beides zeitlgeich gewechselt) das ich nur noch Müll beim Auslesen meienr Exe File Version erhalte...


Nutze bis dato ohne Fehler:
Delphi-Quellcode:
function GetFileVersion(const FileName: string): string;
var i, W: LongWord;
  P: Pointer;
  FI: PVSFixedFileInfo;

begin
  Result := 'NoVersionInfo';
  i := GetFileVersionInfoSize(PWideChar(FileName), W);



  if i = 0 then Exit;
  GetMem(P, i);
  try
    if not GetFileVersionInfo(PWideChar(FileName), W, i, P)
      or not VerQueryValue(P, '\', Pointer(FI), W) then Exit;
    Result := IntToStr(FI^.dwFileVersionMS shr 16)
      + '.' + IntToStr(FI^.dwFileVersionMS and $FFFF)
      + '.' + IntToStr(FI^.dwFileVersionLS shr 16)
      + '.' + IntToStr(FI^.dwFileVersionLS and $FFFF);
    if FI^.dwFileFlags and VS_FF_DEBUG <> 0 then Result := Result + ' debug';
    if FI^.dwFileFlags and VS_FF_PRERELEASE <> 0 then Result := Result + ' beta';
    if FI^.dwFileFlags and VS_FF_PRIVATEBUILD <> 0 then Result := Result + ' private';
    if FI^.dwFileFlags and VS_FF_SPECIALBUILD <> 0 then Result := Result + ' special';
  finally
    FreeMem(P);
  end;
end;

Nun bekomme ich total andere Werte... keine Ahnung warum
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat