Получение информации о версии файлаDelphi , Файловая система , ФайлыПолучение информации о версии файла
Автор: Gua { **** UBPFD *********** by delphibase.endimus.com **** >> Получение информации о версии файла Зависимости: Автор: Gua, fbsdd@ukr.net, ICQ:141585495, Simferopol Copyright: Дата: 05 мая 2002 г. ***************************************************** } {$B-,R-} function GetFileVersion(const FileName: string): string; type PDWORD = ^DWORD; PLangAndCodePage = ^TLangAndCodePage; TLangAndCodePage = packed record wLanguage: WORD; wCodePage: WORD; end; PLangAndCodePageArray = ^TLangAndCodePageArray; TLangAndCodePageArray = array[0..0] of TLangAndCodePage; var loc_InfoBufSize: DWORD; loc_InfoBuf: PChar; loc_VerBufSize: DWORD; loc_VerBuf: PChar; cbTranslate: DWORD; lpTranslate: PDWORD; i: DWORD; begin Result := ''; if (Length(FileName) = 0) or (not Fileexists(FileName)) then Exit; loc_InfoBufSize := GetFileVersionInfoSize(PChar(FileName), loc_InfoBufSize); if loc_InfoBufSize > 0 then begin loc_VerBuf := nil; loc_InfoBuf := AllocMem(loc_InfoBufSize); try if not GetFileVersionInfo(PChar(FileName), 0, loc_InfoBufSize, loc_InfoBuf) then exit; if not VerQueryValue(loc_InfoBuf, '\\VarFileInfo\\Translation', Pointer(lpTranslate), DWORD(cbTranslate)) then exit; for i := 0 to (cbTranslate div SizeOf(TLangAndCodePage)) - 1 do begin if VerQueryValue( loc_InfoBuf, PChar(Format( 'StringFileInfo\0%x0%x\FileVersion', [ PLangAndCodePageArray(lpTranslate)[i].wLanguage, PLangAndCodePageArray(lpTranslate)[i].wCodePage])), Pointer(loc_VerBuf), DWORD(loc_VerBufSize) ) then begin Result := loc_VerBuf; Break; end; end; finally FreeMem(loc_InfoBuf, loc_InfoBufSize); end; end; end; Функция GetFileVersion позволяет получать информацию о версии файла, используя библиотеку Delphi и API-функции Windows. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |