Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Файловая система \ DLL \ Функции VER.DLL

Функции 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 = '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;

Название: Функции VER.DLL
Дата публикации: 2004-05-24 (2640 Прочтено)

 
 

 

Page generation 0.028 seconds