1
0
mirror of https://github.com/DarthAffe/RGB.NET.git synced 2025-12-13 10:08:31 +00:00

Updated Asus-device-detection

This commit is contained in:
Darth Affe 2020-12-17 17:44:34 +01:00
parent 074fcc8203
commit a4ed4c466b
2 changed files with 32 additions and 25 deletions

View File

@ -1,4 +1,4 @@
#if NETFULL using System;
using System.Management; using System.Management;
namespace RGB.NET.Devices.Asus namespace RGB.NET.Devices.Asus
@ -8,11 +8,26 @@ namespace RGB.NET.Devices.Asus
{ {
#region Properties & Fields #region Properties & Fields
private static ManagementObjectSearcher _mainboardSearcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT Manufacturer,Product FROM Win32_BaseBoard"); // ReSharper disable InconsistentNaming
private static ManagementObjectSearcher _graphicsCardSearcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT Name FROM Win32_VideoController"); private static readonly ManagementObjectSearcher? _mainboardSearcher;
private static readonly ManagementObjectSearcher? _graphicsCardSearcher;
// ReSharper restore InconsistentNaming
private static (string manufacturer, string model)? _mainboardInfo; private static (string manufacturer, string model)? _mainboardInfo;
private static string _graphicsCardInfo; private static string? _graphicsCardInfo;
#endregion
#region Constructors
static WMIHelper()
{
if (OperatingSystem.IsWindows())
{
_mainboardSearcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT Manufacturer,Product FROM Win32_BaseBoard");
_graphicsCardSearcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT Name FROM Win32_VideoController");
}
}
#endregion #endregion
@ -20,19 +35,23 @@ namespace RGB.NET.Devices.Asus
internal static (string manufacturer, string model)? GetMainboardInfo() internal static (string manufacturer, string model)? GetMainboardInfo()
{ {
if (!_mainboardInfo.HasValue) if (!OperatingSystem.IsWindows()) return null;
if (!_mainboardInfo.HasValue && (_mainboardSearcher != null))
foreach (ManagementBaseObject managementBaseObject in _mainboardSearcher.Get()) foreach (ManagementBaseObject managementBaseObject in _mainboardSearcher.Get())
{ {
_mainboardInfo = (managementBaseObject["Manufacturer"]?.ToString(), managementBaseObject["Product"]?.ToString()); _mainboardInfo = (managementBaseObject["Manufacturer"]?.ToString() ?? string.Empty, managementBaseObject["Product"]?.ToString() ?? string.Empty);
break; break;
} }
return _mainboardInfo; return _mainboardInfo;
} }
internal static string GetGraphicsCardsInfo() internal static string? GetGraphicsCardsInfo()
{ {
if (_graphicsCardInfo == null) if (!OperatingSystem.IsWindows()) return null;
if ((_graphicsCardInfo == null) && (_graphicsCardSearcher != null))
foreach (ManagementBaseObject managementBaseObject in _graphicsCardSearcher.Get()) foreach (ManagementBaseObject managementBaseObject in _graphicsCardSearcher.Get())
{ {
_graphicsCardInfo = managementBaseObject["Name"]?.ToString(); _graphicsCardInfo = managementBaseObject["Name"]?.ToString();
@ -44,20 +63,4 @@ namespace RGB.NET.Devices.Asus
#endregion #endregion
} }
} }
#else
namespace RGB.NET.Devices.Asus
{
// ReSharper disable once InconsistentNaming
internal static class WMIHelper
{
#region Methods
internal static (string manufacturer, string model)? GetMainboardInfo() => null;
internal static string GetGraphicsCardsInfo() => null;
#endregion
}
}
#endif

View File

@ -50,6 +50,10 @@
<DefineConstants>$(DefineConstants);RELEASE</DefineConstants> <DefineConstants>$(DefineConstants);RELEASE</DefineConstants>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Management" Version="5.0.0" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<_PackageFiles Include="$(OutputPath)\net5.0\Interop.AuraServiceLib.dll"> <_PackageFiles Include="$(OutputPath)\net5.0\Interop.AuraServiceLib.dll">
<BuildAction>None</BuildAction> <BuildAction>None</BuildAction>