Главная страница
    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.45 MB
Время: 0.039 c
14-1098259036
gn
2004-10-20 11:57
2004.11.07
прикольно


14-1098332642
Dmitriy O.
2004-10-21 08:24
2004.11.07
Lotus Notes 6 & Delphi что лучше ?


14-1097792687
Knight
2004-10-15 02:24
2004.11.07
Фэнтези...


4-1096654682
Ваня
2004-10-01 22:18
2004.11.07
Как определить Enabled или Disabled элемент на чужой форме?


6-1094151616
GuAV
2004-09-02 23:00
2004.11.07
TWebBrowser - designMode





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский