Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Версия exe'шника [D6, WinXP]


DEM_s ©   (2005-03-15 14:30:00) 

Как взять версию exe'шника?


REA   (2005-03-15 15:03:00) [1]

Или так:
Procedure SetVersion;
Var
 Size: DWORD;
 Ver, sFlags: String;
 Nomean: DWORD;
 Len: UInt;
 pFF: PVSFixedFileInfo;
Begin
 If Version = '' Then
 Try
   Size := GetFileVersionInfoSize(PChar(Application.EXEName), NoMean);
   SetLength(Ver, Size);
   GetFileVersionInfo(PChar(Application.EXEName), 0, Size, @Ver[1]);
   VerQueryValue(@Ver[1],'\'#0, Pointer(pFF), Len);
   With pFF^ Do
     Version:= IntToStr(dwFileVersionMS Shr 16) +'.'+
               IntToStr(dwFileVersionMS And $FFFF)+'.'+
               IntToStr(dwFileVersionLS Shr 16)+' build '+
               IntToStr(dwFileVersionLS And $FFFF);
   If ((pFF^).dwFileFlags And VS_FF_PRERELEASE)<>0 Then sFlags := 'Beta';
   If ((pFF^).dwFileFlags And VS_FF_DEBUG)<>0 Then
   Begin
     If sFlags<>'' Then sFlags := sFlags + ', ';
     sFlags := sFlags + 'Debug';
   End;
   If ((pFF^).dwFileFlags And VS_FF_SPECIALBUILD)<>0 Then
   Begin
     If sFlags<>'' Then sFlags := sFlags + ', ';
     sFlags := sFlags + ' Special build';
   End;
   If sFlags<>'' Then Version := Version + ' ['+sFlags+']';
 Except End;
End;


DEM_s   (2005-03-15 14:34:00) [2]

Спасибо


Slym   (2005-03-15 14:33:00) [3]

function GetFileVersion(const FileName:string):string;
var
 VerSize,Zero:LongWord;
 VerPtr,pData: Pointer;
 DataSize: LongWord;
begin
 result:='';
 Zero:=0;
 VerSize:=GetFileVersionInfoSize(PChar(FileName),Zero);
 if VerSize=0 then Exit;
 GetMem(VerPtr, verSize);
 try
 if GetFileVersionInfo(Pchar(FileName),0,VerSize,VerPtr) then
   if VerQueryValue(verPtr,'\\StringFileInfo\\041904E3\\FileVersion',pData,DataSize) then
     SetString(result,PChar(pData),DataSize);
 finally
   FreeMem(verPtr);
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо