Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Это не в точности то, что вы ищите, но надеюсь, что это поможет. Я показываю информацию о версии в диалоговом окне "О программе", код приведен ниже. Блок StringFileInfo вы можете и не использовать, он необходим для осуществления простейшей проверки, вместо этого можно получить информацию из корневого блока (для дополнительной информации смотри структуру TVS_FIXEDFILEINFO в файле помощи по API).
procedureTAboutBox.FormCreate(Sender: TObject); var
VIHandle: LongInt; VSize: LongInt; VData: Pointer; VVers: Pointer; Len: Word; FileName: string
; const
{ Предустановленный набор символов U.S., если я правильно помню } Prefix = 'StringFileInfo40904E4'; function
GetVerValue(Value: string
): string
; var
ItemName: string
; begin
ItemName := Prefix + Value + chr(0); Result := ''; if
VerQueryValue(VData, @ItemName[1], VVers, Len) then
if
Len > 0 then
begin
if
Len > 255 then
Len := 255;
{ "Обрезаем" любые длинные строки } Move(VVers^, Result[1], Len); Result[0] := Chr(Len); end; end
; begin
FileName := Application.EXEName + chr(0); VSize := GetFileVersionInfoSize(@FileName[1], VIHandle); if
VIHandle <> 0 then
begin
GetMem(VData, VSize); try
if
GetFileVersionInfo(@FileName[1], VIHandle, VSize, VData) then
begin
{ В этом месте мы получаем значения из блока StringFileInfo, но точно также мы могли бы взять значения из корневого блока, используя VerQueryValue } ProductName.Caption := GetVerValue('ProductName'); Version.Caption := GetVerValue('ProductVersion'); Copyright.Caption := GetVerValue('LegalCopyright'); Comments.Caption := GetVerValue('FileDescription'); end
; finally
FreeMem(VData, VSize); end
; end
; end
;