Wersja programu

0

Witam,
czy jest możliwość pobrania wersji programu (ustawionej w Project option -> Version Info) i wyświetlania jej jako np. labela na formie?
Pozdrawiam,
Marek

0
function GetFileVersion(Name: string): string;
var
  InfoSize, VerSize, Wnd: longword;
  VerBuf: Pointer;
  FI:     PVSFixedFileInfo;
  VersionH, VersionL: integer;
  VMajor, VMinor, VRelease, VBuild: string;
begin
  VersionH := 0;
  VersionL := 0;
  InfoSize := GetFileVersionInfoSize(PChar(Name), Wnd);
  if InfoSize <> 0 then
  begin
    GetMem(VerBuf, InfoSize);
    try
      if GetFileVersionInfo(PChar(Name), Wnd, InfoSize, VerBuf) then
        if VerQueryValue(VerBuf, '\', Pointer(FI), VerSize) then
        begin
          VersionH := FI.dwFileVersionMS;
          VersionL := FI.dwFileVersionLS;
        end;
    finally
      FreeMem(VerBuf);
    end;
    VMajor   := IntToStr(($FFFF0000 and VersionH) shr 16);
    VMinor   := IntToStr($0000FFFF and VersionH);
    VRelease := IntToStr(($FFFF0000 and VersionL) shr 16);
    VBuild   := IntToStr($0000FFFF and VersionL);
    Result   := PChar(VMajor + '.' + VMinor + '.' + VRelease + '.' + VBuild);
  end
  else
    Result := '';
end;
0
function GetAppVersion(FileName: String): String;
var
  Info       : PVSFixedFileInfo;
  InfoSize   : Cardinal;
  nHwnd      : DWORD;
  BufferSize : DWORD;
  Buffer     : Pointer;
begin
  Result := '';
  BufferSize := GetFileVersionInfoSize(PChar(FileName), nHWnd);
  GetMem(Buffer, BufferSize);
  try
    if GetFileVersionInfo(PChar(FileName), nHWnd, BufferSize,Buffer) then
      if VerQueryValue(Buffer, '\', Pointer(Info), InfoSize) then
        with Info^ do
          Result := Format('%d.%d.%d', [HiWord(dwFileVersionMS), LoWord(dwFileVersionMS), LoWord(dwFileVersionLS)]);
  finally
    FreeMem(Buffer, BufferSize);
  end;
end;
0

Dzięki!
Kombinowałem z jakimś atrybutem application, a nie pomyślałem o wyciągnięciu wersji z pliku exe...
Pozdrawiam,
Marek

0

Super działa, a jak wyciągnąć resztę danych z exe-ca, czyli Nazwa produktu, nazwa wewnętrzna, prawa, język.

1 użytkowników online, w tym zalogowanych: 0, gości: 1