算你撞到枪口了。
需要包含windows 和 shellapi单元
// fn 是文件名称和路径
// ma,mi,r,b 是版本号
// 如 1.0.3.20 那么 ma=1,mi=0,r=3,b=20
function GetFileVersion(fn: string; var ma, mi, r ,b: integer):boolean;
var
buf, p: pChar;
sver: ^VS_FIXEDFILEINFO
i: LongWord;
begin
i:= GetFileVersionInfoSize(pchar(fn), i);
new(sver);
p:= pchar(sver);
GetMem(buf, i);
ZeroMemory(buf, i);
result:= false;
if GetFileVersionInfo(pchar(fn), 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:= true;
end;
Dispose(p);
FreeMem(buf);
end;