public virtual string GetMetric(ComputerMetricsEnum type) { var value = ""; switch (type) { case CpuUsage: value = GetValueFromWmi("Win32_PerfFormattedData_PerfOS_Processor", "PercentProcessorTime"); break; case ComputerName: value = Environment.MachineName; break; case UserName: value = Environment.UserDomainName + @"\" + Environment.UserName; break; case AvailableRam: var availableRam = int.Parse(GetValueFromWmi("Win32_OperatingSystem", "TotalVisibleMemorySize")); value = (availableRam / 1024).ToString(); break; case VideoCard: value = GetValueFromWmi("Win32_VideoController", "Name"); break; case Ip: var host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { value = ip.ToString(); } } break; case Cpu: value = GetValueFromWmi("Win32_Processor", "Name"); break; case RamUsage: var free = double.Parse(GetValueFromWmi("Win32_OperatingSystem", "FreePhysicalMemory")); var total = double.Parse(GetValueFromWmi("Win32_OperatingSystem", "TotalVisibleMemorySize")); var ramUsagePercent = (int)Math.Round((total - free) / total * 100); value = ramUsagePercent.ToString(); break; case AvailableDiskSpaceGb: var allDrives = DriveInfo.GetDrives(); long sum = 0; foreach (var d in allDrives) { if (d.IsReady) { sum += d.TotalFreeSpace.BytesToGygabytes(); } } value = sum.ToString(); break; case AverageDiskQueueLength: value = GetValueFromWmi("win32_perfformatteddata_perfdisk_physicaldisk", "AvgDiskQueueLength"); break; default: value = ""; break; } return(value); }
public virtual string GetMetric(ComputerMetricsEnum type) { var value = ""; switch (type) { case CpuUsage: value = GetValueFromWmi("Win32_PerfFormattedData_PerfOS_Processor", "PercentProcessorTime"); break; case ComputerName: value = Environment.MachineName; break; case UserName: value = Environment.UserDomainName + @"\" + Environment.UserName; break; case AvailableRam: var availableRam = int.Parse(GetValueFromWmi("Win32_OperatingSystem", "TotalVisibleMemorySize")); value = (availableRam / 1024).ToString(); break; case VideoCard: value = GetValueFromWmi("Win32_VideoController", "Name"); break; case Ip: var host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { value = ip.ToString(); } } break; case Cpu: value = GetValueFromWmi("Win32_Processor", "Name"); break; case RamUsage: var free = double.Parse(GetValueFromWmi("Win32_OperatingSystem", "FreePhysicalMemory")); var total = double.Parse(GetValueFromWmi("Win32_OperatingSystem", "TotalVisibleMemorySize")); var ramUsagePercent = (int)Math.Round((total - free) / total * 100); value = ramUsagePercent.ToString(); break; case AvailableDiskSpaceGb: var allDrives = DriveInfo.GetDrives(); long sum = 0; foreach (var d in allDrives) { if (d.IsReady) { sum += d.TotalFreeSpace.BytesToGygabytes(); } } value = sum.ToString(); break; case AverageDiskQueueLength: value = GetValueFromWmi("win32_perfformatteddata_perfdisk_physicaldisk", "AvgDiskQueueLength"); break; default: value = ""; break; } return value; }