Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

Можно ли вытащить версию 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.035 c
4-1096449331
Igit
2004-09-29 13:15
2004.11.07
Смещение в файле EP


3-1097052389
Ром
2004-10-06 12:46
2004.11.07
Выбор СУБД


4-1096373253
-SeM-
2004-09-28 16:07
2004.11.07
Разная работа приложения в 9х/ХР


14-1097772051
Rouse_
2004-10-14 20:40
2004.11.07
Нет, ну я балдю с подрастающего поколения...


1-1098686822
Last
2004-10-25 10:47
2004.11.07
Как задавить нажатие клавиши Enter?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский