Buscar

Retornando a versão de um executável

Código

Function fncAplVersion(const sProgram : string) : string;
{===========================================}
{ Autor: Gustavo Zicatti Raimundo.                                             }
{ Data de criação: 28/12/2005.                                                 }
{  Objetivo:                                                                   }
{      Retorna a versão de algum aplicativo que foi indicado no path.          }
{  Observações:                                                                }
{      Para retornar a versão do aplicativo indicado este deve ter sido        }
{          incluido dentro do aplicativo na hora de compilar, no caso do Delphi}
{          isto é feito acessando o menu Project>Options... e na aba Version   }
{          Info deve-se setar a opção "Include version information in projet". }
{      Caso a versão do aplicativo não esteja incluida dentro do executável    }
{          esta função irá gerar uma excessão.                                 }
{===========================================}
var
    dwVerInfoSize  : DWORD;
    ptVerInfo      : pointer;
    dwVerValueSize : DWORD;
    tVerValue      : PVSFixedFileInfo;
    dwDummy        : DWORD;
    wrV1           : word;
    wrV2           : word;
    wrV3           : word;
    wrV4           : word;
begin
    {Captura o tamanho que foi designado para a versão do aplicativo}
    dwVerInfoSize:=GetFileVersionInfoSize(PChar(sProgram), dwDummy);
    {Aloca memória}
    GetMem(ptVerInfo, dwVerInfoSize);
    {Captura os dados sobre a versão do aplicativo}
    GetFileVersionInfo(PChar(sProgram), 0, dwVerInfoSize, ptVerInfo);
    {Captura a versão}
    VerQueryValue(ptVerInfo, '', Pointer(tVerValue), dwVerValueSize);
    {Faz a formatação da versão}
    with tVerValue^ do
    begin
        wrV1:=dwFileVersionMS shr 16;
        wrV2:=dwFileVersionMS and $FFFF;
        wrV3:=dwFileVersionLS shr 16;
        wrV4:=dwFileVersionLS and $FFFF;
    end;
    {Libera a memória}
    FreeMem(ptVerInfo, dwVerInfoSize);
    {Retorna a versão já formatada}
    Result:=IntToStr(wrV1) + '.' + IntToStr(wrV2) + '.' + IntToStr(wrV3) + '.' + IntToStr(wrV4);
end;
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Windows
Adicionada dia: 28/12/05
Por: Gustavo Zicatti Raimundo
Visualizada: 3633 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009