diff --git a/deploy/FortFirewall.iss b/deploy/FortFirewall.iss index a895831a..73603aa5 100644 --- a/deploy/FortFirewall.iss +++ b/deploy/FortFirewall.iss @@ -140,6 +140,35 @@ begin Result := (Version.Major > 10) or ((Version.Major = 10) and (Version.Build > 19040)); end; +function IsWindows7(): Boolean; +var + Version: TWindowsVersion; +begin + GetWindowsVersionEx(Version); + Result := (Version.Major = 6) and (Version.Minor = 1); +end; + +function IsUpdateInstalled(KB: String): Boolean; +var + UpdateSession: Variant; + UpdateSearcher: Variant; + SearchResult: Variant; + I: Integer; +begin + UpdateSession := CreateOleObject('Microsoft.Update.Session'); + UpdateSearcher := UpdateSession.CreateUpdateSearcher(); + SearchResult := UpdateSearcher.Search('IsInstalled=1'); + for I := 0 to SearchResult.Updates.Count - 1 do + begin + if SearchResult.Updates.Item(I).KBArticleIDs.Item(0) = KB then + begin + Result := true; + Exit; + end; + end; + Result := false; +end; + function HVCIEnabled(): Boolean; var EnabledValue: Cardinal; @@ -292,6 +321,14 @@ begin begin SuppressibleMsgBox(ExpandConstant('{cm:NotCompatibleWithWindows}'), mbCriticalError, MB_OK, IDOK); + Result := False; + Exit; + end; +#else + if IsWindows7() and not IsUpdateInstalled('4474419') then + begin + SuppressibleMsgBox(ExpandConstant('{cm:NotCompatibleWithWindows7}'), mbCriticalError, MB_OK, IDOK); + Result := False; Exit; end; diff --git a/deploy/languages/custom/BrazilianPortuguese.isl b/deploy/languages/custom/BrazilianPortuguese.isl index bbbeb295..a242fd8d 100644 --- a/deploy/languages/custom/BrazilianPortuguese.isl +++ b/deploy/languages/custom/BrazilianPortuguese.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Cancel WrongPassword=Wrong password NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=This program is not compatible with HVCI (Core Isolation). IsDeleteData=Delete config & data files? diff --git a/deploy/languages/custom/ChineseSimplified.isl b/deploy/languages/custom/ChineseSimplified.isl index 6c03d4ed..2b97f984 100644 --- a/deploy/languages/custom/ChineseSimplified.isl +++ b/deploy/languages/custom/ChineseSimplified.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=È· UninstallPasswordCancel=È¡Ïû WrongPassword=ÃÜÂë´íÎó NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=Õâ¸ö³ÌÐòÓëHVCI£¨ºËÐĸôÀ룩²»¼æÈÝ¡£ IsDeleteData=ÄúÏ£Íûɾ³ýÅäÖÃÎļþºÍÊý¾ÝÎļþÂ𣿠diff --git a/deploy/languages/custom/Default.isl b/deploy/languages/custom/Default.isl index a2a854eb..7cefb3ba 100644 --- a/deploy/languages/custom/Default.isl +++ b/deploy/languages/custom/Default.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Cancel WrongPassword=Wrong password NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=This program is not compatible with HVCI (Core Isolation). IsDeleteData=Delete config & data files? diff --git a/deploy/languages/custom/French.isl b/deploy/languages/custom/French.isl index 395f73a7..766bb50c 100644 --- a/deploy/languages/custom/French.isl +++ b/deploy/languages/custom/French.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Cancel WrongPassword=Wrong password NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=This program is not compatible with HVCI (Core Isolation). IsDeleteData=Delete config & data files? diff --git a/deploy/languages/custom/German.isl b/deploy/languages/custom/German.isl index a6182011..80da37f9 100644 --- a/deploy/languages/custom/German.isl +++ b/deploy/languages/custom/German.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Cancel WrongPassword=Wrong password NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=This program is not compatible with HVCI (Core Isolation). IsDeleteData=Delete config & data files? diff --git a/deploy/languages/custom/Italian.isl b/deploy/languages/custom/Italian.isl index 3cb34667..78040b8c 100644 --- a/deploy/languages/custom/Italian.isl +++ b/deploy/languages/custom/Italian.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Cancel WrongPassword=Wrong password NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=This program is not compatible with HVCI (Core Isolation). IsDeleteData=Delete config & data files? diff --git a/deploy/languages/custom/Korean.isl b/deploy/languages/custom/Korean.isl index 49df6fa2..e219237f 100644 --- a/deploy/languages/custom/Korean.isl +++ b/deploy/languages/custom/Korean.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Cancel WrongPassword=Wrong password NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=This program is not compatible with HVCI (Core Isolation). IsDeleteData=Delete config & data files? diff --git a/deploy/languages/custom/Portuguese.isl b/deploy/languages/custom/Portuguese.isl index 5e8d57a7..29a3d0a1 100644 --- a/deploy/languages/custom/Portuguese.isl +++ b/deploy/languages/custom/Portuguese.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Cancel WrongPassword=Wrong password NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=This program is not compatible with HVCI (Core Isolation). IsDeleteData=Delete config & data files? diff --git a/deploy/languages/custom/Russian.isl b/deploy/languages/custom/Russian.isl index 5c9ca594..baf8bddd 100644 --- a/deploy/languages/custom/Russian.isl +++ b/deploy/languages/custom/Russian.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Îòìåíà WrongPassword=Wrong password NotCompatibleWithWindows=Ýòà ïðîãðàììà íåñîâìåñòèìà ñ âåðñèåé Windows (òðåáóåòñÿ Windows 10 2004 èëè íîâåå). +NotCompatibleWithWindows7=Ýòà ïðîãðàììà íåñîâìåñòèìà ñ âåðñèåé Windows 7 (òðåáóåòñÿ KB4474419). NotCompatibleWithHVCI=Ýòà ïðîãðàììà íåñîâìåñòèìà ñ HVCI (Core Isolation). IsDeleteData=Óäàëèòü íàñòðîéêè è ôàéëû äàííûõ? diff --git a/deploy/languages/custom/Slovenian.isl b/deploy/languages/custom/Slovenian.isl index 33ba9b27..d4b3330d 100644 --- a/deploy/languages/custom/Slovenian.isl +++ b/deploy/languages/custom/Slovenian.isl @@ -14,5 +14,6 @@ UninstallPasswordOK=OK UninstallPasswordCancel=Cancel WrongPassword=Wrong password NotCompatibleWithWindows=This program is not compatible with Windows version (Windows 10 2004 or newer required). +NotCompatibleWithWindows7=This program is not compatible with Windows 7 version (KB4474419 required). NotCompatibleWithHVCI=This program is not compatible with HVCI (Core Isolation). IsDeleteData=Delete config & data files?