2016-04-01 59 views
0

我想,以确定当前OS处于Windows 8.1中。检查,如果当前的操作系统是Windows 8.1使用Inno Setup的Pascal脚本

我知道这可以通过分析当前Windows版本的NT版本号(6.3)来解决,但我不知道如何在Pascal脚本下执行此操作。

伪代码:

// Occurs when the installer initializes. 
function InitializeSetup(): Boolean; 
begin 
    if IsWindows81 then 
    begin 
     Result := IsKBInstalled('KB2919355'); 
     if not Result then 
     MsgBox('Windows Update package "KB2919355" not found.', mbError, MB_OK); 
     end; 
    else 
     begin 
     Result := True 
     end; 
end; 

回答

1

的Windows 8.1是Windows version 6.3。

,最简单的是检查GetWindowsVersion function,其为$MMNNBBBB的返回值(中号 ajor,MI Ñ或, uild)。

function IsWindows81OrLater: Boolean; 
begin 
    Result := (GetWindowsVersion >= $06030000); 
end; 

如果要检查Windows 8.1只,用途:

function IsWindows81: Boolean; 
begin 
    Result := (GetWindowsVersion >= $06030000) and (GetWindowsVersion <= $0603FFFF); 
end; 
+0

谢谢回答(再次),我承担一个版本的功能检查等于或大于的Windows NT 6.3更大如此NT 10又名Windows 10会给出一个误报?,我只需要确定当前的操作系统是否是Windows 8.1,不会更大。你能否更新代码或指导我更好地解析返回的字符串? – ElektroStudios

+0

是的,我明白了,非常感谢。 (StackOverflow禁止我在几分钟之前接受答案)。 – ElektroStudios

相关问题