Como pegar atributos (versão) de uma DLL?
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
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
Curtidas 0
Respostas
Adriano Santos
19/07/2007
Aqui nós extenalizamos uma função.
Depois e só usar:
Label1.Caption := VersaoDll;
function versaoDLL: Integer; export; begin Result := 6; end;
Depois e só usar:
Label1.Caption := VersaoDll;
GOSTEI 0
Yallebr
19/07/2007
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.
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.
GOSTEI 0
Bruno Belchior
19/07/2007
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;
GOSTEI 0
Yallebr
19/07/2007
Valeu Bruno! Bom te ver por aqui! Abraço!
GOSTEI 0
Bruno Belchior
19/07/2007
Sempre às ordens... Abraço...
GOSTEI 0