2016-04-01 2 views
0

Я хотел бы определить, является ли текущая ОС Windows 8.1.Проверьте, является ли текущая ОС Windows 8.1 с помощью программы установки Inno Setup Pascal

Я знаю, что это можно решить, проанализировав номер версии NT (6.3) текущей версии Windows, но я не знаю, как это сделать в сценарии 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, ми Н или В 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

 Смежные вопросы

  • Нет связанных вопросов^_^