Fórum Pegar versão de pacote BPL pelo Delphi #397835

22/03/2011

0

Pesso@l,

alguém sabe como ler um BPL e capturar a versão do pacote, lembrando que essa versão é ajustada nas opções do pacote (assim como do exe)?

qualquer ajuda será bem vinda.
Eniorm

Eniorm

Responder

Posts

22/03/2011

Eniorm

Opa! achei na net um método para tal, com o objetivo que pegar versão de EXE porém testei e funciona perfeitamente com o pacote BPL.


o código do exemplo só pegava a versão do programa na qual a function era chamada, mas eu fiz uma mudança simples para passar como entrada o nome do arquivo e a função retorna uma string da versão.

function PegaVersao(Arquivo : String) : String;type  PFFI = ^vs_FixedFileInfo;var  F : PFFI;  Handle : Dword;  Len : Longint;  Data : Pchar;  Buffer : Pointer;  Tamanho : Dword;  Parquivo: Pchar;begin  if not (FileExists(Arquivo)) then  begin    Result := 'NAO-ENCONTRADO';    Abort;  end;
  Parquivo := StrAlloc(Length(Arquivo) + 1);  StrPcopy(Parquivo, Arquivo);  Len := GetFileVersionInfoSize(Parquivo, Handle);  Result := '';  if (Len > 0) then  begin    Data:=StrAlloc(Len+1);    if GetFileVersionInfo(Parquivo,Handle,Len,Data) then    begin      VerQueryValue(Data, '\',Buffer,Tamanho);      F := PFFI(Buffer);      Result := Format('%d.%d.%d.%d',        [HiWord(F^.dwFileVersionMs),        LoWord(F^.dwFileVersionMs),        HiWord(F^.dwFileVersionLs),        Loword(F^.dwFileVersionLs)]      );    end;    StrDispose(Data);  end;  StrDispose(Parquivo);end;
Responder

Gostei + 0

23/03/2011

Wilson Junior

Veja se isto tb pode lhe ajudar Delphi

Espero ter colaborado.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar