从Inno安装文档中引用
GetWindowsVersion()
返回压缩为单个整数的Windows版本号。高8位指定主版本;以下8位指定次要版本;较低的16位指定内部版本号。例如,在Windows 2000(版本5.0.2195)上,此函数将返回$05000893。
无法与浮点值进行比较,需要提取版本号的部分,如下所示:
function AppDir(Param: String): String;
var
Ver: Cardinal;
VerMajor, VerMinor, BuildNum: Cardinal;
begin
Ver := GetWindowsVersion();
VerMajor := Ver shr 24;
VerMinor := (Ver shr 16) and $FF;
BuildNum := Ver and $FFFF;
if VerMajor >= 6 then
Result := ExpandConstant('{userdocs}')
else
Result := ExpandConstant('{pf}');
end;
VerMajor
对于相等,因为这对于较低或较高的Windows版本都将失败。始终使用
<=
>=
相反