From db1ce5c15c76c9c7b06d2654fbad4030aec74730 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 11 Sep 2017 02:04:50 +0100 Subject: [PATCH] Added the ability to differentiate between customer names for Windows versions given the correct version build. --- DiscImageChef.Interop/DetectOS.cs | 33 ++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/DiscImageChef.Interop/DetectOS.cs b/DiscImageChef.Interop/DetectOS.cs index 22665999d..900397a11 100644 --- a/DiscImageChef.Interop/DetectOS.cs +++ b/DiscImageChef.Interop/DetectOS.cs @@ -214,7 +214,7 @@ namespace DiscImageChef.Interop return IntPtr.Size == 4; } - public static string GetPlatformName(PlatformID id) + public static string GetPlatformName(PlatformID id, string version = null) { switch(id) { @@ -277,10 +277,41 @@ namespace DiscImageChef.Interop case PlatformID.WiiU: return "Nintendo Wii U"; case PlatformID.Win32NT: + if(string.IsNullOrEmpty(version)) + return "Windows NT/2000/XP/Vista/7/10"; + if(version.StartsWith("3.", StringComparison.Ordinal) || + version.StartsWith("4.", StringComparison.Ordinal)) + return "Windows NT"; + if(version.StartsWith("5.0", StringComparison.Ordinal)) + return "Windows 2000"; + if(version.StartsWith("5.1", StringComparison.Ordinal)) + return "Windows XP"; + if(version.StartsWith("5.2", StringComparison.Ordinal)) + return "Windows 2003"; + if(version.StartsWith("6.0", StringComparison.Ordinal)) + return "Windows Vista"; + if(version.StartsWith("6.1", StringComparison.Ordinal)) + return "Windows 7"; + if(version.StartsWith("6.1", StringComparison.Ordinal)) + return "Windows 8"; + if(version.StartsWith("6.3", StringComparison.Ordinal)) + return "Windows 8.1"; + if(version.StartsWith("10.0", StringComparison.Ordinal)) + return "Windows 10"; return "Windows NT/2000/XP/Vista/7/10"; case PlatformID.Win32S: return "Windows 3.x with win32s"; case PlatformID.Win32Windows: + if(string.IsNullOrEmpty(version)) + return "Windows 9x/Me"; + if(version.StartsWith("4.0", StringComparison.Ordinal)) + return "Windows 95"; + if(version.StartsWith("4.10.2222", StringComparison.Ordinal)) + return "Windows 98 SE"; + if(version.StartsWith("4.1", StringComparison.Ordinal)) + return "Windows 98"; + if(version.StartsWith("4.9", StringComparison.Ordinal)) + return "Windows Me"; return "Windows 9x/Me"; case PlatformID.WinCE: return "Windows CE/Mobile";