Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
ВнизКак добраться программно к версии ПО Найти похожие ветки
← →
MAPIIIAJL (2003-09-05 09:37) [0]Люди нужна ваша помощь. Вопрос: Если зайти в дельфи в свойсва проекта <Shift+Ctrl+F11>, там на вкладке <Инфо Версии>?? (не знаю как в английском) есть информация о текущей версии проекта, а также о номере компановки. А еще там есть галочка, автоувеличения номера компановки. Ну так вот, как программно добраться к значению версии и номера компановки, чтобы автоматом загружать их в форму "Информация о программе", в моей проге.
Зараене спасиб. Подозреваю, что эти данные находятся в файле ресурсов. Но как получить к нему доступ не знаю.
← →
AlexVM (2003-09-05 09:42) [1]Я использую TdfsVersionInfoResource из пакета Delphi Free Stuff Package...
← →
mrcat (2003-09-05 09:46) [2]GetFileVersionInfoSize
← →
mrcat (2003-09-05 09:49) [3]пардон, GetFileVersionInfo
← →
MAPIIIAJL (2003-09-05 16:45) [4]mrcat
Можешь рассказать поподробней, про параметры данной ф-ии.
И если не трудно небольшой примерчик ее применения.
Да и каким макаром оттуда достать номер компановки.
Заранее спасибо.
← →
han_malign (2003-09-05 17:42) [5]
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.
← →
Anatoly Podgoretsky (2003-09-05 17:45) [6]MAPIIIAJL © (05.09.03 16:45) [4]
http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N161
← →
MAPIIIAJL (2003-09-12 09:54) [7]Огромное всем спасибо! Разобрался!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c