Fórum Versão do meu executável #334988
20/12/2006
0
Gostaria de uma função que me retornasse a versão de um executável, feito por mim ou não.
eu tenho essa função:
mas ela não funciona se a versão tiver dois digitos, por exemplo, se a versão for 47, ele traz apenas 4
Poderiam me ajudar?
eu tenho essa função:
function GetBuildInfo(prog: string): string; var VerInfoSize: DWORD; VerInfo: Pointer; VerValueSize: DWORD; VerValue: PVSFixedFileInfo; Dummy: DWORD; V1, V2, V3, V4: Word; begin try VerInfoSize := GetFileVersionInfoSize(PChar(prog), Dummy); GetMem(VerInfo, VerInfoSize); GetFileVersionInfo(PChar(prog), 0, VerInfoSize, VerInfo); VerQueryValue(VerInfo, ´\´, Pointer(VerValue), VerValueSize); with VerValue^ do begin V1 := dwFileVersionMS shr 16; V2 := dwFileVersionMS and $FFFF; V3 := dwFileVersionLS shr 16; V4 := dwFileVersionLS and $FFFF; end; FreeMem(VerInfo, VerInfoSize); 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); except result := ´Versão de Debug´; end; end;
mas ela não funciona se a versão tiver dois digitos, por exemplo, se a versão for 47, ele traz apenas 4
Poderiam me ajudar?
Vitor Rubio
Curtir tópico
+ 0
Responder
Posts
20/12/2006
Weber
function GetVersionSystem:shortstring; type PVerInfo = ^TVSFIXEDFILEINFO; var Buf : Pointer; KeyPath, SelfPath : string; Len, Sz, L : cardinal; VerInfo : PVerInfo; VerInfoPresent:boolean; begin Result := ´Desconhecida´; VerInfoPresent := false; SelfPath := ParamStr(0)+#0; Sz := GetFileVersionInfoSize(Addr(SelfPath[1]), L); GetMem(Buf, Sz); if (Sz > 0) and GetFileVersionInfo(Addr(SelfPath[1]), 0, Sz, Buf) then VerInfoPresent := true; if VerInfoPresent then begin KeyPath := ´\´+ 0; if VerQueryValue(Buf, Addr(KeyPath[1]), Pointer(VerInfo), Len) then Result := IntToStr(HIWORD(VerInfo.dwFileVersionMS))+´.´+ IntToStr(LOWORD(VerInfo.dwFileVersionMS))+´.´+ IntToStr(HIWORD(VerInfo.dwFileVersionLS))+´.´+ IntToStr(LOWORD(VerInfo.dwFileVersionLS)); end; end;
Responder
Gostei + 0
12/01/2007
Vitor Rubio
Obrigado Weber!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)