Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
1-1098134528
TechnoDreamer
2004-10-19 01:22
2004.11.07
Обработка onClick при DragMode:=dmAutomatic


14-1098272595
Vol
2004-10-20 15:43
2004.11.07
Вернуть к жизни винчестер и информацию на нем


4-1096024986
MooSE
2004-09-24 15:23
2004.11.07
Как вызвать диалог завершения работы Windows?


1-1098447124
Wolffgang
2004-10-22 16:12
2004.11.07
Assigned?


14-1098166737
Shuma
2004-10-19 10:18
2004.11.07
Справочная система




   Наверх