using System; using System.Collections.Generic; using System.Linq; using System.Management; using System.Text; using System.Threading.Tasks; namespace NX_Installation { class WindowsVersion { public enum WindowsMainVersion { WindowsXP, WindowsServer2003, WindowsXP_64, WindowsVista, WindowsVista_64, WindowsServer2008, Windows7, Windows7_64, WindowsServer2008R2, Windows8, Windows8_64, Windows8_1, Windows8_1_Update1, Windows8_1_64, Windows8_1_64_Update1, Windows10, Windows10_64, WindowsServer2012, WindowsServer2016, Unknown } string MajorVersion { set; get; } string MinorVersion { set; get; } string Build { set; get; } public WindowsVersion() { string osv = OSVersion.Version.ToString(); WinVersion(osv); } public WindowsMainVersion GetWindowsVersion() { if (Environment.Is64BitOperatingSystem) { //64bit if (MajorVersion == "5" & MinorVersion == "1") { return WindowsMainVersion.WindowsXP_64; } else if (MajorVersion == "5" & MinorVersion == "2") { return WindowsMainVersion.WindowsServer2003; } else if (MajorVersion == "6" & MinorVersion == "0" & (Build == "6000" | Build == "6002")) { return WindowsMainVersion.WindowsVista_64; } else if (MajorVersion == "6" & MinorVersion == "0" & Build == "6001") { return WindowsMainVersion.WindowsServer2008R2; } else if (MajorVersion == "6" & MinorVersion == "1" & (Build == "7600" | Build == "7601")) { return WindowsMainVersion.Windows7_64; } else if (MajorVersion == "6" & MinorVersion == "1" & Build == "7600") { return WindowsMainVersion.WindowsServer2008R2; } else if (MajorVersion == "6" & MinorVersion == "2") { return WindowsMainVersion.Windows8_64; } else if (MajorVersion == "6" & MinorVersion == "3" & Build == "9200") { return WindowsMainVersion.Windows8_1_64; } else if (MajorVersion == "6" & MinorVersion == "3" & Build == "9600") { return WindowsMainVersion.Windows8_1_64_Update1; } else if (MajorVersion == "10" & MinorVersion == "0") { return WindowsMainVersion.Windows10_64; } else if (MajorVersion == "10" & MinorVersion == "0" & Build == "14393") { return WindowsMainVersion.WindowsServer2016; } else { return WindowsMainVersion.Unknown; } } else { //32bit if (MajorVersion == "5" & MinorVersion == "1") { return WindowsMainVersion.WindowsXP; } else if (MajorVersion == "6" & MinorVersion == "0" & (Build == "6000" | Build == "6002")) { return WindowsMainVersion.WindowsVista; } else if (MajorVersion == "6" & MinorVersion == "1" & (Build == "7600" | Build == "7601")) { return WindowsMainVersion.Windows7; } else if (MajorVersion == "6" & MinorVersion == "2") { return WindowsMainVersion.Windows8; } else if (MajorVersion == "6" & MinorVersion == "3" & Build == "9200") { return WindowsMainVersion.Windows8_1; } else if (MajorVersion == "6" & MinorVersion == "3" & Build == "9600") { return WindowsMainVersion.Windows8_1_Update1; } else if (MajorVersion == "10" & MinorVersion == "0") { return WindowsMainVersion.Windows10; } else { return WindowsMainVersion.Unknown; } } } private void WinVersion(string osv) { if (string.IsNullOrEmpty(osv)) { MajorVersion = "Unknown"; } else { MajorVersion = osv.Remove(osv.IndexOf(".")); osv = osv.Remove(0, osv.IndexOf(".") + 1); MinorVersion = osv.Remove(osv.IndexOf(".")); Build = osv.Remove(0, osv.IndexOf(".") + 1); } } } /// /// Stellt Informationen über das Betriebssystem Bereit. /// public static class OSVersion { /// /// Initialisiert die Werte der Eigenschaften. /// static void init() { using (var mos = new ManagementObjectSearcher("SELECT Caption, Version FROM Win32_OperatingSystem")) { var attribs = mos.Get().OfType(); caption = attribs.FirstOrDefault().GetPropertyValue("Caption").ToString() ?? "Unknown"; version = new Version((attribs.FirstOrDefault().GetPropertyValue("Version") ?? "0.0.0.0").ToString()); } } static string caption = null; static Version version = null; /// /// Ruft den Namen des Betriebssystems ab. /// public static string Caption { get { if (caption == null) init(); return caption; } } /// /// Ruft die Versionsnummer des Betriebssystems ab. /// public static Version Version { get { if (version == null) init(); return version; } } } }