358 lines
8.9 KiB
C#
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
|
|
}
|
|
} |