Главная страница
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.48 MB
Время: 0.048 c
3-1167357815
NovaC
2006-12-29 05:03
2007.04.01
ADOQuery & WIN98 v4.10


15-1172894742
Heap
2007-03-03 07:05
2007.04.01
Delphi 2007 будет работать под Виндос МЕ ?


4-1163635372
Wadim
2006-11-16 03:02
2007.04.01
Хочу задать тот же вопрос по поводу скрытия окон, но как иконку


1-1170605010
GTR86
2007-02-04 19:03
2007.04.01
Курсор


3-1168348619
novill
2007-01-09 16:16
2007.04.01
IB 7.5 Как хр. процедуре в переменнной типа date обнулить время?