Как узнать версию программы
Автор: Vit
WEB-сайт: http://forum.vingrad.ru
function FileVersion(AFileName: string ): string ;
var
szName: array [0..255] of Char;
P: Pointer;
Value: Pointer;
Len: UINT;
GetTranslationString: string ;
FFileName: PChar;
FValid: boolean;
FSize: DWORD;
FHandle: DWORD;
FBuffer: PChar;
begin
try
FFileName := StrPCopy(StrAlloc(Length(AFileName) + 1), AFileName);
FValid := False;
FSize := GetFileVersionInfoSize(FFileName, FHandle);
if FSize > 0 then
try
GetMem(FBuffer, FSize);
FValid := GetFileVersionInfo(FFileName, FHandle, FSize, FBuffer);
except
FValid := False;
raise ;
end ;
Result := "";
if FValid then
VerQueryValue(FBuffer, "\VarFileInfo\Translation", p, Len)
else
p := nil ;
if P <> nil then
GetTranslationString := IntToHex(MakeLong(HiWord(Longint(P^)),
LoWord(Longint(P^))), 8);
if FValid then
begin
StrPCopy(szName, "\StringFileInfo\" + GetTranslationString +
"\FileVersion");
if VerQueryValue(FBuffer, szName, Value, Len) then
Result := StrPas(PChar(Value));
end ;
finally
try
if FBuffer <> nil then
FreeMem(FBuffer, FSize);
except
end ;
try
StrDispose(FFileName);
except
end ;
end ;
end ;
В качестве параметра задать имя программы, если своей программы:
FileVersion(Paramstr(0));
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Как узнать версию программы", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:
Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи , в сообщение обязательно указывайте название или ссылку на статью!