GetMem(VerBuf, InfoSize); //申请内存<br> try<br> if GetFileVersionInfo(PChar(FileName), Wnd, InfoSize, VerBuf) then //获取版本信息<br> begin<br> Value := nil;<br> VerQueryValue(VerBuf, '/VarFileInfo/Translation', Value, Len); //读出有关<br> if Value <> nil then<br> TransString := IntToHex(MakeLong(HiWord(Longint(Value^)), LoWord(Longint(Value^))), 8);<br> //Get FileVersion<br> StrPCopy(szName, '/StringFileInfo/' + Transstring + '/FileVersion');<br> if VerQueryValue(VerBuf, szName, Value, Len) then<br> FVsFileVersion := StrPas(PChar(Value));<br> //Get CompanyName<br> StrPCopy(szName, '/StringFileInfo/' + Transstring + '/CompanyName');<br> if VerQueryValue(VerBuf, szName, Value, Len) then<br> FVsCompanyName := StrPas(PChar(Value));<br> //Get FileDescription<br> StrPCopy(szName, '/StringFileInfo/' + Transstring + '/FileDescription');<br> if VerQueryValue(VerBuf, szName, Value, Len) then<br> FVsFileDescription := StrPas(PChar(Value));<br> //Get InternalName<br> StrPCopy(szName, '/StringFileInfo/' + Transstring + '/InternalName');<br> if VerQueryValue(VerBuf, szName, Value, Len) then<br> FVsInternalName := StrPas(PChar(Value));<br> //Get LegalCopyright<br> StrPCopy(szName, '/StringFileInfo/' + Transstring + '/LegalCopyright');<br> if VerQueryValue(VerBuf, szName, Value, Len) then<br> FVsLegalCopyright := StrPas(PChar(Value));<br> //Get OriginalFilename<br> StrPCopy(szName, '/StringFileInfo/' + Transstring + '/OriginalFilename');<br> if VerQueryValue(VerBuf, szName, Value, Len) then<br> FVsOriginalFilename := StrPas(PChar(Value));<br> //Get ProductName<br> StrPCopy(szName, '/StringFileInfo/' + Transstring + '/ProductName');<br> if VerQueryValue(VerBuf, szName, Value, Len) then<br> FVsProductName := StrPas(PChar(Value));<br> //Get ProductVersion<br> StrPCopy(szName, '/StringFileInfo/' + Transstring + '/ProductVersion');<br> if VerQueryValue(VerBuf, szName, Value, Len) then<br> FVsProductVersion := StrPas(PChar(Value));<br> end;<br> FIsVerInfo := true;<br> finally<br> FreeMem(VerBuf);<br> end;