Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
CD-ROM [11]
DLL и PlugIns [75]
Help файлы [20]
INI файлы [16]
RS232 [2]
Активные директории [1]
Директории [0]
Диски [0]
Корзина [5]
Порты [26]
Ресурсы [0]
Файлы [0]
Форматы файлов [15]
Ярлыки [0]

Наш опрос
Есть ли у Вас свой сайт?
Всего ответов: 48

Статистика

Онлайн всего: 3
Гостей: 3
Пользователей: 0

Форма входа

Главная » Статьи » Файловая система » DLL и PlugIns

Функции 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;
Категория: DLL и PlugIns | Добавил: Skinner (07.07.2008)
Просмотров: 390 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz