获取文件版本错误
获取文件版本的代码,参考 http://hi.baidu.com/broland/blog/item/d6209245ff184845510ffe9a.html
测试很多文件都正常,但是我发现在获取腾讯RTX主文件RTX.exe的时候,“文件版本”是错误的
不知道怎么回事
[解决办法]
//获取文件版本号 参数为完整路径function GetFileVersion(FileName: string): string;var Buf, p : PChar; sver : ^VS_FIXEDFILEINFO; I : LongWord; Ma, Mi, R, B : Integer;begin Result := '1.0.0.0'; //默认 if not FileExists(FileName) then Exit; I := GetFileVersionInfoSize(PChar(FileName), I); new(sver); p := PChar(sver); GetMem(Buf, I); ZeroMemory(Buf, I); if GetFileVersionInfo(PChar(FileName), 0, 4096, Pointer(Buf)) then if VerQueryValue(Buf, '\', Pointer(sver), I) then begin Ma := sver^.dwFileVersionMS shr 16; Mi := sver^.dwFileVersionMS and $0000FFFF; R := sver^.dwFileVersionLS shr 16; B := sver^.dwFileVersionLS and $0000FFFF; Result := IntToStr(Ma) + '.' + IntToStr(Mi) + '.' + IntToStr(R) + '.' + IntToStr(B); end; Dispose(p); FreeMem(Buf);end;