public MainWindow() { InitializeComponent(); RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion"); var buildNumber = Convert.ToInt32(registryKey.GetValue("CurrentBuild")); var buildNumber2 = Convert.ToInt32(registryKey.GetValue("CurrentMajorVersionNumber")); var buildNumber3 = Convert.ToInt32(registryKey.GetValue("CurrentMinorVersionNumber")); var info = new SystemVersionInfo(buildNumber2, buildNumber3, buildNumber); MessageBox.Show(info.Major + " " + info.Minor + " " + info.Build); }
public static SystemVersionInfo GetSystemVersionInfo() { var managementClass = new ManagementClass("Win32_OperatingSystem"); var instances = managementClass.GetInstances(); foreach (var instance in instances) { if (instance["Version"] is string version) { var nums = version.Split('.').Select(int.Parse).ToList(); var info = new SystemVersionInfo(nums[0], nums[1], nums[2]); return(info); } } return(default);
internal static void EnableBlur(Window window) { RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion"); var build = Convert.ToInt32(registryKey.GetValue("CurrentBuild")); var major = Convert.ToInt32(registryKey.GetValue("CurrentMajorVersionNumber")); var minor = Convert.ToInt32(registryKey.GetValue("CurrentMinorVersionNumber")); SystemVersionInfo = new SystemVersionInfo(major, minor, build); var accentPolicy = new ExternDllHelper.ACCENTPOLICY(); var accentPolicySize = Marshal.SizeOf(accentPolicy); if (SystemVersionInfo >= SystemVersionInfo.Windows10_1809) { accentPolicy.AccentState = ExternDllHelper.ACCENTSTATE.ACCENT_ENABLE_ACRYLICBLURBEHIND; } else if (SystemVersionInfo >= SystemVersionInfo.Windows10) { accentPolicy.AccentState = ExternDllHelper.ACCENTSTATE.ACCENT_ENABLE_BLURBEHIND; } else { var colorValue = ResourceHelper.GetResource <uint>(ResourceToken.BlurGradientValue); var color = ColorHelper.ToColor(colorValue); color = Color.FromRgb(color.R, color.G, color.B); window.Background = new SolidColorBrush(color); return; } accentPolicy.AccentFlags = 2; accentPolicy.GradientColor = ResourceHelper.GetResource <uint>(ResourceToken.BlurGradientValue); var accentPtr = Marshal.AllocHGlobal(accentPolicySize); Marshal.StructureToPtr(accentPolicy, accentPtr, false); var data = new ExternDllHelper.WINCOMPATTRDATA { Attribute = ExternDllHelper.WINDOWCOMPOSITIONATTRIB.WCA_ACCENT_POLICY, DataSize = accentPolicySize, Data = accentPtr }; ExternDllHelper.SetWindowCompositionAttribute(new WindowInteropHelper(window).Handle, ref data); Marshal.FreeHGlobal(accentPtr); }
public static SystemVersionInfo GetSystemVersionInfo() { ManagementClass managementClass = new ManagementClass("Win32_OperatingSystem"); ManagementObjectCollection instances = managementClass.GetInstances(); foreach (ManagementBaseObject instance in instances) { if (instance["Version"] is string version) { System.Collections.Generic.List <int> nums = version.Split('.').Select(int.Parse).ToList(); SystemVersionInfo info = new SystemVersionInfo(nums[0], nums[1], nums[2]); return(info); } } return(default(SystemVersionInfo)); }
internal static void EnableBlur(Window window) { var version = WindowHelper.GetWindowsVersion(); var versionInfo = new SystemVersionInfo(version.Major, version.Minor, version.Build); if (versionInfo < SystemVersionInfo.Windows10 || versionInfo >= SystemVersionInfo.Windows10_1903) { var colorValue = ResourceHelper.GetResource <uint>(ResourceToken.BlurGradientValue); var color = ColorHelper.ToColor(colorValue); color = Color.FromRgb(color.R, color.G, color.B); window.Background = new SolidColorBrush(color); return; } var accentPolicy = new InteropValues.ACCENTPOLICY(); var accentPolicySize = Marshal.SizeOf(accentPolicy); accentPolicy.AccentState = versionInfo < SystemVersionInfo.Windows10_1809 ? InteropValues.ACCENTSTATE.ACCENT_ENABLE_BLURBEHIND : InteropValues.ACCENTSTATE.ACCENT_ENABLE_ACRYLICBLURBEHIND; accentPolicy.AccentFlags = 2; accentPolicy.GradientColor = ResourceHelper.GetResource <uint>(ResourceToken.BlurGradientValue); var accentPtr = Marshal.AllocHGlobal(accentPolicySize); Marshal.StructureToPtr(accentPolicy, accentPtr, false); var data = new InteropValues.WINCOMPATTRDATA { Attribute = InteropValues.WINDOWCOMPOSITIONATTRIB.WCA_ACCENT_POLICY, DataSize = accentPolicySize, Data = accentPtr }; InteropMethods.Gdip.SetWindowCompositionAttribute(window.GetHandle(), ref data); Marshal.FreeHGlobal(accentPtr); }
public static extern void RtlGetVersion(ref SystemVersionInfo versionInfo);