Функции VER.DLL



Это не в точности то, что вы ищите, но надеюсь, что это поможет. Я показываю информацию о версии в диалоговом окне "О программе", код приведен ниже. Блок StringFileInfo вы можете и не использовать, он необходим для осуществления простейшей проверки, вместо этого можно получить информацию из корневого блока (для дополнительной информации смотри структуру TVS_FIXEDFILEINFO в файле помощи по API).


procedure TAboutBox.FormCreate(Sender: TObject);
var
  VIHandle: LongInt;
  VSize: LongInt;
  VData: Pointer;
  VVers: Pointer;
  Len: Word;
  FileName: string;

const
  { Предустановленный набор символов U.S., если я правильно помню }
  Prefix = '\StringFileInfo\040904E4\';

  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;





Похожие по теме исходники

Линейная интерполяция функции

Very Easy Cafe

Revers Power

The Matrix Screen Saver

 

Clock Screen Saver

Convert JPEG to PDF

BIM Converter

Blood Saver

 

ReVersus (Реверси)

Spiral by Overdrive

DLL Form

DLL in Resources

 

DLL Injector




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте