Files
mapo-mono/MP.MONO.Core/MachineInfo.cs
T

358 lines
8.9 KiB
C#

using NLog;
using System.Management;
namespace MP.MONO.Core
{
/// <summary>
/// Gestione info macchina
/// </summary>
public class MachineInfo
{
#region Public Methods
/// <summary>
/// Info OS
/// </summary>
/// <returns></returns>
public static async Task<Dictionary<string, string>> GetOsInfo()
{
ManagementObjectCollection moc;
var Processor = new Dictionary<string, string>();
try
{
moc = new ManagementObjectSearcher("select * from Win32_OperatingSystem").Get();
}
catch
{
Log.Error("Error: WMI API Not loaded.");
return Processor;
}
foreach (ManagementObject obj in moc)
{
try
{
Processor.Add("Name", obj["Caption"].ToString());
}
catch
{ }
try
{
Processor.Add("Version", obj["Version"].ToString());
}
catch
{ }
try
{
Processor.Add("MaxProcessCount", obj["MaxNumberOfProcesses"].ToString());
}
catch
{ }
try
{
Processor.Add("MaxProcessRAM", obj["MaxProcessMemorySize"].ToString());
}
catch
{ }
try
{
Processor.Add("Architecture", obj["OSArchitecture"].ToString());
}
catch
{ }
try
{
Processor.Add("SerialNumber", obj["SerialNumber"].ToString());
}
catch
{ }
try
{
Processor.Add("Build", obj["BuildNumber"].ToString());
}
catch
{ }
}
return Processor;
}
/// <summary>
/// Info processore
/// </summary>
/// <returns></returns>
public static async Task<Dictionary<string, string>> GetProcessorInfo()
{
ManagementObjectCollection moc;
var Processor = new Dictionary<string, string>();
try
{
moc = new ManagementObjectSearcher("select * from Win32_Processor").Get();
}
catch
{
Log.Error("Error: WMI API Not loaded.");
return Processor;
}
foreach (ManagementObject obj in moc)
{
try
{
Processor.Add("AddressWidth", obj["AddressWidth"].ToString());
}
catch
{ }
try
{
Processor.Add("Architecture", obj["Architecture"].ToString());
}
catch
{ }
try
{
Processor.Add("Availability", obj["Availability"].ToString());
}
catch
{ }
try
{
Processor.Add("Caption", obj["Caption"].ToString());
}
catch
{ }
try
{
Processor.Add("CpuStatus", obj["CpuStatus"].ToString());
}
catch
{ }
try
{
Processor.Add("CreationClassName", obj["CreationClassName"].ToString());
}
catch
{ }
try
{
Processor.Add("CurrentClockSpeed", obj["CurrentClockSpeed"].ToString());
}
catch
{ }
try
{
Processor.Add("CurrentVoltage", obj["CurrentVoltage"].ToString());
}
catch
{ }
try
{
Processor.Add("DataWidth", obj["DataWidth"].ToString());
}
catch
{ }
try
{
Processor.Add("Description", obj["Description"].ToString());
}
catch
{ }
try
{
Processor.Add("DeviceID", obj["DeviceID"].ToString());
}
catch
{ }
try
{
Processor.Add("ExtClock", obj["ExtClock"].ToString());
}
catch
{ }
try
{
Processor.Add("Family", obj["Family"].ToString());
}
catch
{ }
try
{
Processor.Add("L2CacheSize", obj["L2CacheSize"].ToString());
}
catch
{ }
try
{
Processor.Add("L3CacheSize", obj["L3CacheSize"].ToString());
}
catch
{ }
try
{
Processor.Add("Level", obj["Level"].ToString());
}
catch
{ }
try
{
Processor.Add("LoadPercentage", obj["LoadPercentage"].ToString());
}
catch
{ }
try
{
Processor.Add("Manufacturer", obj["Manufacturer"].ToString());
}
catch
{ }
try
{
Processor.Add("MaxClockSpeed", obj["MaxClockSpeed"].ToString());
}
catch
{ }
try
{
Processor.Add("Name", obj["Name"].ToString());
}
catch
{ }
try
{
Processor.Add("NumberOfCores", obj["NumberOfCores"].ToString());
}
catch
{ }
try
{
Processor.Add("NumberOfLogicalProcessors", obj["NumberOfLogicalProcessors"].ToString());
}
catch
{ }
try
{
Processor.Add("PowerManagementSupported", obj["PowerManagementSupported"].ToString());
}
catch
{ }
try
{
Processor.Add("Processorid", obj["Processorid"].ToString());
}
catch
{ }
try
{
Processor.Add("ProcessorType", obj["ProcessorType"].ToString());
}
catch
{ }
try
{
Processor.Add("Revision", obj["Revision"].ToString());
}
catch
{ }
try
{
Processor.Add("Role", obj["Role"].ToString());
}
catch
{ }
try
{
Processor.Add("SocketDesignation", obj["SocketDesignation"].ToString());
}
catch
{ }
try
{
Processor.Add("Status", obj["Status"].ToString());
}
catch
{ }
try
{
Processor.Add("StatusInfo", obj["StatusInfo"].ToString());
}
catch
{ }
try
{
Processor.Add("Stepping", obj["Stepping"].ToString());
}
catch
{ }
try
{
Processor.Add("SystemName", obj["SystemName"].ToString());
}
catch
{ }
try
{
Processor.Add("UpgradeMethod", obj["UpgradeMethod"].ToString());
}
catch
{ }
try
{
Processor.Add("Version", obj["Version"].ToString());
}
catch
{ }
}
return Processor;
}
#endregion Public Methods
#region Private Fields
private static Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
}
}