Sunday, 30 August 2009

Obtener la versión de la aplicación con Delphi

En el IDE de Delphi, aparece la versión de la aplicación siempre que la tengamos marcada:


Para leer ésta versión y mostrarla en nuestra aplicación, lo podemos hacer de la siguiente manera, utilizando la propia API de Windows mediante las funciones GetFileVersionInfoSize y GetFileVersionInfo.

El código fuente es de la web de Trucomania, y lo modifiqué para mis aplicaciones:

unit ThundaxAppLib;

interface

uses
    Windows, SysUtils, Variants, Classes;

function GetAppVersion: string;

implementation

function GetAppVersion: string;
var
    Size, Size2: DWord;
    Pt, Pt2: Pointer;
begin
    Size := GetFileVersionInfoSize(PChar(ParamStr(0)), Size2);
    if Size > 0 then
    begin
        GetMem(Pt, Size);
        try
            GetFileVersionInfo(PChar(ParamStr(0)), 0, Size, Pt);
            VerQueryValue(Pt, '\', Pt2, Size2);
            with TVSFixedFileInfo(Pt2^) do
            begin
                Result := ' v' +
                    IntToStr(HiWord(dwFileVersionMS)) + '.' +
                    IntToStr(LoWord(dwFileVersionMS)) + '.' +
                    IntToStr(HiWord(dwFileVersionLS)) + ' Build ' +
                    IntToStr(LoWord(dwFileVersionLS));
            end;
        finally
            FreeMem(Pt);
        end;
    end;
end;

end.


Para su utilización, solo hay que llamar al método GetAppVersion, y devuelve un String con la cadena v1.0.0 Build 8.

1 comment: