Форум: "Основная";
Текущий архив: 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.038 c