/* System.cs $ This file is part of the HandBrake source code. Homepage: . It may be used under the terms of the GNU General Public License. */ namespace HandBrake.ApplicationServices.Functions { using System.Windows.Forms; using Microsoft.Win32; /// /// The System Information. /// public class SystemInfo { /// /// Gets the total physical ram in a system /// /// The total memory in the system public static ulong TotalPhysicalMemory { get { Win32.MEMORYSTATUSEX memStat = new Win32.MEMORYSTATUSEX { dwLength = 64 }; Win32.GlobalMemoryStatusEx(ref memStat); ulong value = memStat.ullTotalPhys / 1024 / 1024; return value; } } /// /// Gets the number of CPU Cores /// /// Object public static object GetCpuCount { get { RegistryKey regKey = Registry.LocalMachine; regKey = regKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"); return regKey == null ? 0 : regKey.GetValue("ProcessorNameString"); } } /// /// Gets the System screen size information. /// /// System.Windows.Forms.Scree public static Screen ScreenBounds { get { return Screen.PrimaryScreen; } } } }