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

Вниз

Можно ли вытащить версию exe файла?   Найти похожие ветки 

 
JaoDa   (2004-10-22 14:11) [0]

Имеется две программы которые работают в паре. У каждой из них много версий - некоторые их которых не совместимы между собой.

Цель: при каждом запуске любой из них - проверять совместимость соседней.

Можно ли как-нибудь из одной вытащить версию другой?


 
Гаврила ©   (2004-10-22 14:18) [1]

Можно
см. GetFileVersionInfo


 
snake1977   (2004-10-22 14:22) [2]

если стоит RX
то тама есть юнит
RxVerInf

подключаеш и пишеш
With TVersionInfo.Create(FileName) do
Begin
 Label1.Caption:=FileVersion;
End;


 
han_malign ©   (2004-10-22 14:28) [3]

program FileVer;
{$APPTYPE CONSOLE}
uses Windows,Utils;
var
 _s,_sName: string;
 sz,len: DWORD;
 i: integer;
 _h: THandle;
 _p,_pV: pointer;
begin
 _sName:=ParamStr(1);
 sz:=GetFileVersionInfoSize(PChar(_sName),_h);
 if(sz=0)then Writeln("GetFileVersionInfoSize "+WinErrMsg(GetLastError,true))
 else begin
   Writeln("FileVersionInfoSize= "+IntStr(sz));
   GetMem(_pV,sz);
   if(GetFileVersionInfo(PChar(_sName),_h,sz,_pV))then begin
     if(VerQueryValue(_pV,"\",_p,len))then begin
       with(TVSFixedFileInfo(_p^))do begin
         Writeln("Signature       ="+HexDWord(dwSignature       ));
         Writeln("StrucVersion    ="+HexDWord(dwStrucVersion    ));
         Writeln("FileVersionMS   ="+HexDWord(dwFileVersionMS   ));
         Writeln("FileVersionLS   ="+HexDWord(dwFileVersionLS   ));
         Writeln("ProductVersionMS="+HexDWord(dwProductVersionMS));
         Writeln("ProductVersionLS="+HexDWord(dwProductVersionLS));
         Writeln("FileFlagsMask   ="+HexDWord(dwFileFlagsMask   ));
         Writeln("FileFlags       ="+HexDWord(dwFileFlags       ));
         Writeln("FileOS          ="+HexDWord(dwFileOS          ));
         Writeln("FileType        ="+HexDWord(dwFileType        ));
         Writeln("FileSubtype     ="+HexDWord(dwFileSubtype     ));
         Writeln("FileDateMS      ="+HexDWord(dwFileDateMS      ));
         Writeln("FileDateLS      ="+HexDWord(dwFileDateLS      ));
       end;
     end else Writeln("\ Fail");
     if(VerQueryValue(_pV,"\VarFileInfo\Translation",_p,len))then begin
       for i:=0 to Len div 2 -1 do begin
         Writeln(IntStr(Word(_p^)));
         inc(DWORD(_p),2);
       end;
     end else Writeln("\VarFileInfo\Translation Fail");
   end else Writeln("GetFileVersionInfo "+WinErrMsg(GetLastError,true));
   FreeMem(_pV);
 end;
end.


 
JaoDa   (2004-10-22 14:49) [4]

Спасибо, всем! Полагаю дальше разберусь...



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

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

Наверх




Память: 0.47 MB
Время: 0.047 c
14-1098112036
Серый волк
2004-10-18 19:07
2004.11.07
Анонимные прокси


1-1098457860
MRAk
2004-10-22 19:11
2004.11.07
Как Добавить картинку в Drawgride в опр ячейку


4-1096653446
Dot
2004-10-01 21:57
2004.11.07
Как найти хэндл кнопки


1-1098438349
NATA
2004-10-22 13:45
2004.11.07
Файлы


14-1098381867
uji
2004-10-21 22:04
2004.11.07
имортист