@@ -51,6 +51,9 @@ public static class OsInfo
/// </summary>
/// </summary>
public static List < IOsDriveInfo > Drives { get ; set ; }
public static List < IOsDriveInfo > Drives { get ; set ; }
/// <summary>
/// Сеть
/// </summary>
public static List < IOsNetInfo > Net { get ; set ; }
public static List < IOsNetInfo > Net { get ; set ; }
#region С л у ж е б н ы е м е т о д ы
#region С л у ж е б н ы е м е т о д ы
@@ -72,6 +75,8 @@ public static class OsInfo
/// </summary>
/// </summary>
/// <returns>Список информации о процессорах</returns>
/// <returns>Список информации о процессорах</returns>
private static List < IOsProcessorInfo > GetProcessors ( )
private static List < IOsProcessorInfo > GetProcessors ( )
{
try
{
{
//Создаю результирующий список
//Создаю результирующий список
List < IOsProcessorInfo > processorsList = new ( ) ;
List < IOsProcessorInfo > processorsList = new ( ) ;
@@ -99,13 +104,20 @@ public static class OsInfo
Manufacturer = collection . Cast < ManagementObject > ( )
Manufacturer = collection . Cast < ManagementObject > ( )
. Select ( static a = > a . Properties [ "Manufacturer" ] . Value . ToString ( ) ) . ElementAtOrDefault ( ind ) ,
. Select ( static a = > a . Properties [ "Manufacturer" ] . Value . ToString ( ) ) . ElementAtOrDefault ( ind ) ,
MaxClockSpeed = TypeConverter . StrToInt ( collection . Cast < ManagementObject > ( )
MaxClockSpeed = TypeConverter . StrToInt ( collection . Cast < ManagementObject > ( )
. Select ( static a = > a . Properties [ "MaxClockSpeed" ] . Value . ToString ( ) ) . ElementAtOrDefault ( ind ) ? ? "0" ) ,
. Select ( static a = >
a . Properties [ "MaxClockSpeed" ] . Value . ToString ( ) )
. ElementAtOrDefault ( ind ) ? ?
"0" ) ,
Name = collection . Cast < ManagementObject > ( )
Name = collection . Cast < ManagementObject > ( )
. Select ( static a = > a . Properties [ "Name" ] . Value . ToString ( ) ) . ElementAtOrDefault ( ind ) ,
. Select ( static a = > a . Properties [ "Name" ] . Value . ToString ( ) ) . ElementAtOrDefault ( ind ) ,
NumberOfCores = TypeConverter . StrToInt ( collection . Cast < ManagementObject > ( )
NumberOfCores = TypeConverter . StrToInt ( collection . Cast < ManagementObject > ( )
. Select ( static a = > a . Properties [ "NumberOfCores" ] . Value . ToString ( ) ) . ElementAtOrDefault ( ind ) ? ? "0" ) ,
. Select ( static a = >
a . Properties [ "NumberOfCores" ] . Value . ToString ( ) )
. ElementAtOrDefault ( ind ) ? ?
"0" ) ,
NumberOfLogicalProcessors = TypeConverter . StrToInt ( collection . Cast < ManagementObject > ( )
NumberOfLogicalProcessors = TypeConverter . StrToInt ( collection . Cast < ManagementObject > ( )
. Select ( static a = > a . Properties [ "NumberOfLogicalProcessors" ] . Value . ToString ( ) ) . ElementAtOrDefault ( ind ) ? ? "0" )
. Select ( static a = > a . Properties [ "NumberOfLogicalProcessors" ] . Value . ToString ( ) )
. ElementAtOrDefault ( ind ) ? ? "0" )
} ;
} ;
//Добавляю в список
//Добавляю в список
@@ -115,12 +127,19 @@ public static class OsInfo
//Возвращаю список
//Возвращаю список
return processorsList ;
return processorsList ;
}
}
catch ( NullReferenceException )
{
return new ( ) ;
}
}
/// <summary>
/// <summary>
/// Получение общее количество оперативной памяти
/// Получение общее количество оперативной памяти
/// </summary>
/// </summary>
/// <returns>Список информации о количестве оперативной памяти</returns>
/// <returns>Список информации о количестве оперативной памяти</returns>
private static ulong GetRAMs ( )
private static ulong GetRAMs ( )
{
try
{
{
//Создаю классы менеджмента
//Создаю классы менеджмента
ManagementClass management = new ( "Win32_ComputerSystem" ) ;
ManagementClass management = new ( "Win32_ComputerSystem" ) ;
@@ -130,12 +149,19 @@ public static class OsInfo
return TypeConverter . StrToUInt64 ( collection . Cast < ManagementObject > ( )
return TypeConverter . StrToUInt64 ( collection . Cast < ManagementObject > ( )
. Select ( static a = > a . Properties [ "TotalPhysicalMemory" ] . Value . ToString ( ) ) . FirstOrDefault ( ) ? ? "0" ) ;
. Select ( static a = > a . Properties [ "TotalPhysicalMemory" ] . Value . ToString ( ) ) . FirstOrDefault ( ) ? ? "0" ) ;
}
}
catch ( NullReferenceException )
{
return 0 ;
}
}
/// <summary>
/// <summary>
/// Получает список видеоадаптеров
/// Получает список видеоадаптеров
/// </summary>
/// </summary>
/// <returns>Список информации о видеоадаптерах</returns>
/// <returns>Список информации о видеоадаптерах</returns>
private static List < IOsVideoAdapterInfo > GetVideoAdapterInfos ( )
private static List < IOsVideoAdapterInfo > GetVideoAdapterInfos ( )
{
try
{
{
//Создаю результирующий список
//Создаю результирующий список
List < IOsVideoAdapterInfo > videosList = new ( ) ;
List < IOsVideoAdapterInfo > videosList = new ( ) ;
@@ -188,12 +214,19 @@ public static class OsInfo
//Возвращаю список
//Возвращаю список
return videosList ;
return videosList ;
}
}
catch ( NullReferenceException )
{
return new ( ) ;
}
}
/// <summary>
/// <summary>
/// Получает список дисков
/// Получает список дисков
/// </summary>
/// </summary>
/// <returns>Список информации о дисках</returns>
/// <returns>Список информации о дисках</returns>
private static List < IOsDriveInfo > GetDriveInfos ( )
private static List < IOsDriveInfo > GetDriveInfos ( )
{
try
{
{
//Создаю результат
//Создаю результат
List < IOsDriveInfo > result = new ( ) ;
List < IOsDriveInfo > result = new ( ) ;
@@ -207,12 +240,19 @@ public static class OsInfo
//Вывожу список
//Вывожу список
return result ;
return result ;
}
}
catch ( NullReferenceException )
{
return new ( ) ;
}
}
/// <summary>
/// <summary>
/// Получаю список HDD/SSD дисков
/// Получаю список HDD/SSD дисков
/// </summary>
/// </summary>
/// <returns>Информация о б о всех HDD/SSD дисках</returns>
/// <returns>Информация о б о всех HDD/SSD дисках</returns>
private static List < IOsDriveInfo > GetHDDs ( )
private static List < IOsDriveInfo > GetHDDs ( )
{
try
{
{
//Создаю результирующий список
//Создаю результирующий список
List < IOsDriveInfo > driveList = new ( ) ;
List < IOsDriveInfo > driveList = new ( ) ;
@@ -253,12 +293,19 @@ public static class OsInfo
//Возвращаю список
//Возвращаю список
return driveList ;
return driveList ;
}
}
catch ( NullReferenceException )
{
return new ( ) ;
}
}
/// <summary>
/// <summary>
/// Получаю список CD/DVD/BD дисков
/// Получаю список CD/DVD/BD дисков
/// </summary>
/// </summary>
/// <returns>Информация о б о всех CD/DVD/BD дисках</returns>
/// <returns>Информация о б о всех CD/DVD/BD дисках</returns>
private static List < IOsDriveInfo > GetCDRom ( )
private static List < IOsDriveInfo > GetCDRom ( )
{
try
{
{
//Создаю результирующий список
//Создаю результирующий список
List < IOsDriveInfo > driveList = new ( ) ;
List < IOsDriveInfo > driveList = new ( ) ;
@@ -299,12 +346,19 @@ public static class OsInfo
//Возвращаю список
//Возвращаю список
return driveList ;
return driveList ;
}
}
catch ( NullReferenceException )
{
return new ( ) ;
}
}
/// <summary>
/// <summary>
/// Получаю информацию о сети интернет
/// Получаю информацию о сети интернет
/// </summary>
/// </summary>
/// <returns>Информация о сети интернет</returns>
/// <returns>Информация о сети интернет</returns>
private static List < IOsNetInfo > GetNet ( )
private static List < IOsNetInfo > GetNet ( )
{
try
{
{
//Создаю результирующий список
//Создаю результирующий список
List < IOsNetInfo > netList = new ( ) ;
List < IOsNetInfo > netList = new ( ) ;
@@ -317,11 +371,14 @@ public static class OsInfo
{
{
Name = adapter . Name ,
Name = adapter . Name ,
Description = adapter . Description ,
Description = adapter . Description ,
MacAddress = adapter . OperationalStatus = = OperationalStatus . Up ? adapter . GetPhysicalAddress ( ) . ToString ( ) : null
MacAddress = adapter . OperationalStatus = = OperationalStatus . Up
? adapter . GetPhysicalAddress ( ) . ToString ( )
: null
} ;
} ;
//Получаю IP-адрес
//Получаю IP-адрес
foreach ( UnicastIPAddressInformation info in adapter . GetIPProperties ( ) . UnicastAddresses . Where ( static info = >
foreach ( UnicastIPAddressInformation info in adapter . GetIPProperties ( ) . UnicastAddresses . Where (
static info = >
info . Address . AddressFamily = = AddressFamily . InterNetwork & & info . IsDnsEligible ) )
info . Address . AddressFamily = = AddressFamily . InterNetwork & & info . IsDnsEligible ) )
{
{
if ( ! string . IsNullOrWhiteSpace ( netInfo . IPAddress ) )
if ( ! string . IsNullOrWhiteSpace ( netInfo . IPAddress ) )
@@ -336,5 +393,10 @@ public static class OsInfo
//Возвращаю список
//Возвращаю список
return netList ;
return netList ;
}
}
catch ( NullReferenceException )
{
return new ( ) ;
}
}
#endregion
#endregion
}
}