Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

как у себя выдрать свойства EXE ?   Найти похожие ветки 

 
ДжекиМайер   (2007-03-07 19:58) [0]

интересует версия программы в string загрузить


 
Германн ©   (2007-03-07 20:08) [1]

Надоело уже повторять. Последний раз повторяю:
1.GetFileVersionInfoSize
2.GetFileVersionInfo
3.VerQueryValue


 
RASkov   (2007-03-07 20:24) [2]

> [0] ДжекиМайер   (07.03.07 19:58)

Не мое:
function CurrentFileInfo(NameApp: string): string;
var
 dump: DWORD;
 size: integer;
 buffer: PChar;
 VersionPointer, TransBuffer: PChar;
 Temp: integer;
 CalcLangCharSet: string;
begin
 size := GetFileVersionInfoSize(PChar(NameApp), dump);
 buffer := StrAlloc(size+1);
 try
   GetFileVersionInfo(PChar(NameApp), 0, size, buffer);

   VerQueryValue(buffer, "\VarFileInfo\Translation", pointer(TransBuffer),
   dump);
   if dump >= 4 then
   begin
     temp:=0;
     StrLCopy(@temp, TransBuffer, 2);
     CalcLangCharSet:=IntToHex(temp, 4);
     StrLCopy(@temp, TransBuffer+2, 2);
     CalcLangCharSet := CalcLangCharSet+IntToHex(temp, 4);
   end;

   VerQueryValue(buffer, pchar("\StringFileInfo\"+CalcLangCharSet+
   "\"+"FileVersion"), pointer(VersionPointer), dump);
   if (dump > 1) then
   begin
     SetLength(Result, dump);
     StrLCopy(Pchar(Result), VersionPointer, dump);
   end
   else
     Result := "0.0.0.0";
 finally
   StrDispose(Buffer);
 end;
end;


 
DVM ©   (2007-03-07 20:37) [3]

function GetFullFileVersion : string;
Var j,w   : Cardinal;
   s     : shortstring;
   buf   : pointer;
   buf2  : pointer;
   q     : DWord;
   vsinfo: ^VS_FIXEDFILEINFO;
   mVer,
   lVer,
   rVer,
   bVer,
   flag  : DWord;
begin
 s := ParamStr(0) + #0;
 j := GetFileVersionInfoSize(@s[1],w);
 if j = 0 then Exit;
 buf := Ptr(GlobalAlloc(GMEM_FIXED,j));
 GetFileVersionInfo(@s[1], 0, j, buf);
 VerQueryValue(buf, "\", buf2, q);
 vsinfo := buf2;
 mVer := vsInfo^.dwProductVersionMS div $FFFF;
 lVer := vsInfo^.dwProductVersionMS mod $10000;
 rVer := vsInfo^.dwProductVersionLS div $FFFF;
 bVer := vsInfo^.dwProductVersionLS mod $10000;
 flag := vsInfo^.dwFileFlags;
 s := IntToStr(mVer) + "." +
      IntToStr(lVer) + "." +
      IntToStr(rVer) + "." +
      IntToStr(bVer);
 if (flag and VS_FF_DEBUG) > 0        then s := s + " debug ";
 if (flag and VS_FF_PRERELEASE) > 0   then s := s + " prerelease ";
 if (flag and VS_FF_PRIVATEBUILD) > 0 then s := s + " private ";
 if (flag and VS_FF_SPECIALBUILD) > 0 then s := s + " special ";
 Result := s;
 GlobalFree(Cardinal(buf));
end;


 
RASkov   (2007-03-07 20:48) [4]

Или найти модуль RxVerInf; входит в RxLib.
Много чего еще можно вытащить из "Версии программы".



Страницы: 1 вся ветка

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
2-1173288978
Chaval'
2007-03-07 20:36
2007.04.01
Сохранение файла


2-1173509412
Арт
2007-03-10 09:50
2007.04.01
Аналог контрола mbsplit.ocx в vb


2-1173121140
Riply
2007-03-05 21:59
2007.04.01
Сравнение строк.


15-1173171766
vajo
2007-03-06 12:02
2007.04.01
The Bat


15-1173172002
ocean
2007-03-06 12:06
2007.04.01
Ретушь