Compare commits

..

2 Commits

Author SHA1 Message Date
Alexander
4a8e1a987b 20230212-1 2023-02-13 13:14:35 +03:00
Alexander
05bf341ba4 20230212 2023-02-13 13:13:26 +03:00
2 changed files with 251 additions and 189 deletions

View File

@ -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
} }

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
<Version>2023.211.0</Version> <Version>2023.212.0</Version>
<Authors>Alexander Babaev</Authors> <Authors>Alexander Babaev</Authors>
<Product>ANB Software Components Pack</Product> <Product>ANB Software Components Pack</Product>
<Description>Library of some useful functions in C# language.</Description> <Description>Library of some useful functions in C# language.</Description>