Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionprocedure GetExeVersion(NameExe: string; var L1, L4: string); var dwVerHandle, nStrLong : integer; cStartBuf : array[0..4] of char; CresBuf : array[0..255] of char; dwVerSize, hMem : integer; LpData : Lpstr; cc : string; Lp : Pointer; begin dwVerSize:= GetFileVersionInfoSize(PChar(NameExe),dwVerHandle); hMem:=GlobalAlloc(GMEM_ZEROINIT,dwVerSize+100); LpData:=Globallock(hMem); try GetFileVersionInfo(PChar(NameExe),dwVerHandle,dwVerSize,LpData); if not VerQueryValue(LpData,'\VarFileInfo\Translation',Lp,nStrLong) then Exit; StrPcopy(cStartBuf,PChar(Lp)); cc:=Format('\StringFileInfo\%.2x%.2x%.2x%.2x\', [byte(cStartBuf[1]), Byte(cStartBuf[0]), Byte(cStartBuf[3]), Byte(cStartBuf[2])]); StrCopy(CresBuf,Pchar(cc+'FileVersion')); if VerQueryValue(LpData,CresBuf,Lp,nStrLong) then begin StrPcopy(CresBuf,PChar(Lp)); L1:= format('Version %s.%s.%s.%s',[CresBuf[0],CresBuf[2], CresBuf[4], CresBuf[6]]); StrCopy(CresBuf,Pchar(cc + 'LegalCopyright')); end; if VerQueryValue(LpData,CresBuf,Lp,nStrLong) then begin StrPcopy(CresBuf,PChar(Lp)); L4:=StrPas(CresBuf); end; finally GlobalUnLock(hMem); end; end;