diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs index 5083121..691d868 100644 --- a/Bloxstrap/App.xaml.cs +++ b/Bloxstrap/App.xaml.cs @@ -181,6 +181,22 @@ namespace Bloxstrap } } + public static void AssertWindowsOSVersion() + { + const string LOG_IDENT = "App::AssertWindowsOSVersion"; + + int major = Environment.OSVersion.Version.Major; + if (major < 10) // Windows 10 and newer only + { + Logger.WriteLine(LOG_IDENT, $"Detected unsupported Windows version ({Environment.OSVersion.Version})."); + + if (!LaunchSettings.QuietFlag.Active) + Frontend.ShowMessageBox(Strings.App_OSDeprecation_Win7_81, MessageBoxImage.Error); + + Terminate(ErrorCode.ERROR_INVALID_FUNCTION); + } + } + protected override void OnStartup(StartupEventArgs e) { const string LOG_IDENT = "App::OnStartup"; @@ -213,6 +229,8 @@ namespace Bloxstrap #endif } + Logger.WriteLine(LOG_IDENT, $"OSVersion: {Environment.OSVersion}"); + Logger.WriteLine(LOG_IDENT, $"Loaded from {Paths.Process}"); Logger.WriteLine(LOG_IDENT, $"Temp path is {Paths.Temp}"); Logger.WriteLine(LOG_IDENT, $"WindowsStartMenu path is {Paths.WindowsStartMenu}"); @@ -292,6 +310,7 @@ namespace Bloxstrap { Logger.Initialize(true); Logger.WriteLine(LOG_IDENT, "Not installed, launching the installer"); + AssertWindowsOSVersion(); // prevent new installs from unsupported operating systems LaunchHandler.LaunchInstaller(); } else diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index ea0cd74..e42ff98 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -179,6 +179,8 @@ namespace Bloxstrap } #endif + App.AssertWindowsOSVersion(); + // ensure only one instance of the bootstrapper is running at the time // so that we don't have stuff like two updates happening simultaneously diff --git a/Bloxstrap/Resources/Strings.Designer.cs b/Bloxstrap/Resources/Strings.Designer.cs index fd14b8f..d1277a1 100644 --- a/Bloxstrap/Resources/Strings.Designer.cs +++ b/Bloxstrap/Resources/Strings.Designer.cs @@ -151,6 +151,15 @@ namespace Bloxstrap.Resources { } } + /// + /// Looks up a localized string similar to Roblox no longer supports Windows 7 or 8.1. To continue playing Roblox, please upgrade to Windows 10 or newer.. + /// + public static string App_OSDeprecation_Win7_81 { + get { + return ResourceManager.GetString("App.OSDeprecation.Win7_81", resourceCulture); + } + } + /// /// Looks up a localized string similar to Bloxstrap was unable to automatically update to version {0}. Please update it manually by downloading and running it from the website.. /// diff --git a/Bloxstrap/Resources/Strings.resx b/Bloxstrap/Resources/Strings.resx index c8a5479..4f3dadb 100644 --- a/Bloxstrap/Resources/Strings.resx +++ b/Bloxstrap/Resources/Strings.resx @@ -1267,4 +1267,7 @@ Please close any applications that may be using Roblox's files, and relaunch.All Bloxstrap logs Label that appears next to a checkbox + + Roblox no longer supports Windows 7 or 8.1. To continue playing Roblox, please upgrade to Windows 10 or newer. + \ No newline at end of file