antp Super Administrateur Champion des excuses bidons | Bon voilà le truc en Pascal, je suppose que tu pourras y récupérer ce dont tu as besoin:
Code :
- type
- PFixedFileInfo = ^TFixedFileInfo;
- TFixedFileInfo = record
- Signature: DWord;
- StrucVersion: DWord;
- Minor: Word;
- Major: Word;
- Build: Word;
- Release: Word;
- FileFlagsMask: DWord;
- FileFlags: DWord;
- FileOS: DWord;
- FileType: DWord;
- FileSubtype: DWord;
- FileDateMS: DWord;
- FileDateLS: DWord;
- end;
- function GetFileInfo(const AFileName: string): TFixedFileInfo;
- var
- Handle, VersionSize: DWORD;
- SubBlock: string;
- Temp: Pointer;
- Data: Pointer;
- ErrMsg: PChar;
- begin
- SubBlock := '\';
- VersionSize := GetFileVersionInfoSize(PChar(AFileName), Handle);
- if VersionSize > 0 then
- begin
- GetMem(Temp, VersionSize);
- try
- if GetFileVersionInfo(PChar(AFileName), Handle, VersionSize, Temp) then
- if VerQueryValue(Temp, PChar(SubBlock), Data, VersionSize) then
- Result := PFixedFileInfo(Data)^;
- finally
- FreeMem(Temp);
- end;
- end else
- begin
- if FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,
- nil, GetLastError, 0, @ErrMsg, 0, nil) <> 0 then
- try
- raise Exception.Create(ErrMsg);
- finally
- LocalFree(Cardinal(ErrMsg));
- end;
- end;
- end;
- function GetBuild(const AFileName: string): string;
- begin
- with GetFileInfo(AFileName) do
- Result := Format('%d.%d.%d.%d', [Major, Minor, Release, Build]);
- end;
|
---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
|