2016-04-01 14 views
0

現在のOSがWindows 8.1であるかどうかを確認したいと思います。Inno Setup Pascal Scriptを使用して現在のOSがWindows 8.1であることを確認してください

これは現在のWindowsバージョンのNTバージョン番号(6.3)を解析することで解決できますが、パスカルスクリプトでどのように行うのか分かりません。

擬似コード:

// 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です。

最も簡単には(MI N又は、B uild、M ajor)$MMNNBBBBあるGetWindowsVersion function、の戻り値をチェックすることです。

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 aka Windows 10は偽陽性を示しますか?現在のOSがWindows 8.1であるかどうかを判断する必要があります。コードを更新したり、返される文字列をよりよく解析するために私を少し案内してください。 – ElektroStudios

+0

はい、ありがとうございます。 (StackOverflowは私が数分前に答えを受け入れることを禁止しています)。 – ElektroStudios

関連する問題