Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** UBPFD *********** by delphibase.endimus.com **** >> Получение информации о версии файла Зависимости: Автор: Gua, fbsdd@ukr.net, ICQ:141585495, Simferopol Copyright: Дата: 05 мая 2002 г. ***************************************************** } {$B-,R-} functionGetFileVersion(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%x0%xFileVersion', [ 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
;