function GetVersion(FileName:string):string; //获得文件版本号
var
InfoSize, Wnd: DWORD;
VerBuf: Pointer;
szName: array[0..255] of Char;
Value: Pointer;
Len: UINT;
TransString:string;
begin
Result := '';
InfoSize := GetFileVersionInfoSize(PChar(FileName),Wnd);
if InfoSize<>0 then
begin
GetMem(VerBuf,InfoSize);
try
if GetFileVersionInfo(PChar(FileName),Wnd,InfoSize,VerBuf) then
begin
Value:=nil;
VerQueryValue(VerBuf,'\VarFileInfo\Translation',Value,Len);
if Value<>nil then
TransString:=IntToHex(MakeLong(HiWord(Longint(Value^)),LoWord(Longint(Value^))),8); Result:='';
// StrPCopy(szName,'\StringFileInfo\'+Transstring+'\ProductVersion');
StrPCopy(szName,'\StringFileInfo\'+Transstring+'\FileVersion');
if VerQueryValue(VerBuf,szName,Value,Len) then
Result:=StrPas(PChar(Value));
end;
finally
FreeMem(VerBuf);
end;
end;
end;
这样获得版本号,然后比较大小,如果两个版本分别是:1.0.0.10和1.0.0.2,比较之后,后者版本号大。怎么办呢?是不是要把版本号分开一个一个比较?