/// <summary> /// Gets the friendly name, as shown in Windows' control panel. /// </summary> /// <returns>System.String.</returns> private string GetFriendlyName() { var lpVersionInformation = new NtDll.OSVERSIONINFOEX(); lpVersionInformation.dwOSVersionInfoSize = (uint)Marshal.SizeOf(lpVersionInformation); NtDll.RtlGetVersion(ref lpVersionInformation); return(ConvertAdapterName(NameBytes, 0, lpVersionInformation.dwPlatformId, lpVersionInformation.dwMajorVersion)); }
/// <summary> /// Gets the version. /// </summary> /// <returns><see cref="NtDll.OSVERSIONINFOEX" />.</returns> private static NtDll.OSVERSIONINFOEX GetVersion() { var osversioninfoex = new NtDll.OSVERSIONINFOEX(); osversioninfoex.dwOSVersionInfoSize = (uint)Marshal.SizeOf(osversioninfoex); NtDll.RtlGetVersion(ref osversioninfoex); return(osversioninfoex); }
private static bool IsWindows10OrHigher() { var version = NtDll.RtlGetVersion(); if (default(Version) == version) { // Snippet from Koopakiller https://dotnet-snippets.de/snippet/os-version-name-mit-wmi/4929 using (var mos = new ManagementObjectSearcher("SELECT Caption, Version FROM Win32_OperatingSystem")) { var attribs = mos.Get().OfType <ManagementObject>(); //caption = attribs.FirstOrDefault().GetPropertyValue("Caption").ToString() ?? "Unknown"; version = new Version((attribs.FirstOrDefault()?.GetPropertyValue("Version") ?? "0.0.0.0").ToString()); } } return(version >= new Version(10, 0)); }