GARANTIR DESCONTO

Fórum Como pegar atributos (versão) de uma DLL? #343411

19/07/2007

0

Olá Pessoal,

Minha aplicação utiliza várias DLL. Eu gostaria de criar no sobre do sistema um local para mostrar a versão de todas as dll pois assim fica mais fácil a gente saber se o cliente tem alguma DLL desatualizada.

Como eu busco a versão de um dll através do Delphi?

Obrigado


Yallebr

Yallebr

Responder

Posts

19/07/2007

Adriano Santos

Aqui nós extenalizamos uma função.

function versaoDLL: Integer; export;
begin
  Result := 6;
end;


Depois e só usar:

Label1.Caption := VersaoDll;


Responder

Gostei + 0

19/07/2007

Yallebr

Olá Adriano,

Obrigado. Mas não é bem isso.
Eu quero pegar o atributo de arquivo (versão) da DLL. Na verdade poderia ser um executavel qualquer.

Equivalente ao dar clique com botão direito e ir em propriedades e versão. Mas quero pegar essa informação via Delphi.

Obrigado.


Responder

Gostei + 0

25/07/2007

Bruno Belchior

Yalle, faz assim:
function GetVersionExe(pExeFile: string): string;
var
  _Size: DWORD;
  _VerInfo: Pointer;
  _ValueSize: DWORD;
  _Value: PVSFixedFileInfo;
  _Dummy: DWORD;
  _V1, _V2, _V3, _V4: Word;
begin
  _Size := GetFileVersionInfoSize(PChar(pExeFile), _Dummy) ;
  GetMem(_VerInfo, _Size);
  GetFileVersionInfo(PChar(pExeFile), 0, _Size, _VerInfo);
  VerQueryValue(_VerInfo, ´\´, Pointer(_Value), _ValueSize);
  with _Value^ do
  begin
    _V1 := dwFileVersionMS shr 16;
    _V2 := dwFileVersionMS and $FFFF;
    _V3 := dwFileVersionLS shr 16;
    _V4 := dwFileVersionLS and $FFFF;
  end;
  FreeMem(_VerInfo, _Size);
  Result := Copy(IntToStr(100 + _V1), 3, 2) + ´.´ +
    Copy(IntToStr(100 + _V2), 3, 2) + ´.´ +
    Copy(IntToStr(100 + _V3), 3, 2) + ´.´ +
    Copy(IntToStr(100 + _V4), 3, 2);
end;



Responder

Gostei + 0

25/07/2007

Yallebr

Valeu Bruno! Bom te ver por aqui! Abraço!


Responder

Gostei + 0

25/07/2007

Bruno Belchior

Sempre às ordens... Abraço...


Responder

Gostei + 0

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

Aceitar