Código
{===========================================}
{ 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;
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009