![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить версию приложения
neveGreen © (2008-12-15 15:30:00)Как получить версию приложения которое исполняется и версию exe файла и сравнить их потом? Применяется для обновления программы.
Palladin (2008-12-15 15:35:00) [41]
Function GetVersion(Const S:String;Simple:Boolean=False):String;
Var
buf:Pointer;
nSize:Integer;
vi:^vs_fixedfileinfo;
p:pointer absolute vi;
l:cardinal;
l1,l2:cardinal;
vs1:array [1..2] of word absolute l1;
vs2:array [1..2] of word absolute l2;
Begin
nSize:=GetFileVersionInfoSize(PChar(S),l);
GetMem(buf,nSize);
Try
GetFileVersionInfo(PChar(S),l,nSize,Buf);
VerQueryValue(Buf,'\',p,l);
l1:=vi.dwFileVersionMS;
l2:=vi.dwFileVersionLS;
If Simple
Then Result:=IntToStr(vs1[2])+'.'+IntToStr(vs1[1])+'.'+IntToStr(vs2[2])+'.'+IntToStr(vs2[1])
Else Result:='v'+IntToStr(vs1[2])+'.'+IntToStr(vs1[1])+' r'+IntToStr(vs2[2])+' b'+IntToStr(vs2[1]);
Finally
FreeMem(buf);
End;
End;