C# 如何监视gpu传感器?

C# 如何监视gpu传感器?,c#,gpu,hardware,C#,Gpu,Hardware,我使用OpenHardwareMonitor.Hardware dll来跟踪gpu传感器,但我没有获得风扇速度。请帮忙 private void Get\u GPU\u配置() { 尝试 { 计算机_comp=新计算机(); _comp.GPUEnabled=真; _comp.Open(); dgv_主窗口.Rows.Clear(); foreach(组件硬件中的var硬件项目) { if((hardwareItem.HardwareType==HardwareType.GpuAti)| |(h

我使用OpenHardwareMonitor.Hardware dll来跟踪gpu传感器,但我没有获得风扇速度。请帮忙

private void Get\u GPU\u配置()
{
尝试
{
计算机_comp=新计算机();
_comp.GPUEnabled=真;
_comp.Open();
dgv_主窗口.Rows.Clear();
foreach(组件硬件中的var硬件项目)
{
if((hardwareItem.HardwareType==HardwareType.GpuAti)| |(hardwareItem.HardwareType==HardwareType.GpuNvidia))
{
int index=dgv_Main_Window.Rows.Add();
字符串_device_Name=hardwareItem.Name.Trim();//Radeon(TM)R5 M430
hardwareItem.Update();
dgv_主窗口。行[index]。单元格[int_Device]。值=_Device_Name;
foreach(硬件中的var传感器电磁传感器)
{
字符串str=sensor.SensorType.ToString();
如果(str==“温度”)
{
dgv_主窗口。行[index]。单元格[int_Temperature]。值=传感器。值。ToString();
}
如果(str==“时钟”)
{
如果(sensor.Name==“GPU核心”)
{
dgv_Main_Window.Rows[index].Cells[int_CoreClock].Value=sensor.Value.ToString();
}
其他的
{
dgv_Main_Window.Rows[index].Cells[int_MemoryClock].Value=sensor.Value.ToString();
}
}
如果(str==“Fan”)
{
如果(sensor.Name==“GPU风扇”)
{
dgv_主窗口。行[index]。单元格[int_FanSpeed]。值=传感器。值;
}
}
}
string[]_deviceName_Array=新字符串[dgv_Main_Window.Rows.Count];
foreach(dgv_主窗口中的DataGridViewRow_drow.Rows)
{
int i=0;
_deviceName_数组[i]=_drow.Cells[int_Device].Value.ToString();
i++;
}
ManagementScope ms=新的ManagementScope(@“root\cimv2”);
ObjectQuery oq2=新建ObjectQuery(“从Win32\u VideoController中选择*);
ManagementObjectSearcher\u视频=新的ManagementObjectSearcher(ms,oq2);
foreach(视频.Get()中的ManagementObject对象)
{
foreach(对象属性中的属性数据PC)
{
}
foreach(设备名称数组中的变量数据)
{
if(_data==obj[“Name”].ToString())
{
foreach(dgv_主窗口中的DataGridViewRow_drow.Rows)
{
if(_drow.Cells[int\u Device].Value.ToString()==u数据)
{
_drow.Cells[int_Id].Value=obj[“DeviceID”].ToString();
_drow.Cells[int_Driver].Value=obj[“DriverVersion”].ToString();
}
}
}
}
}
}
}
}
捕获(例外情况除外)
{
}
}

在谷歌上快速搜索,我找到了代码:

ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(@"root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature"); 
foreach (ManagementObject mo in mos.Get()) 
{ 
   MessageBox.Show(((Convert.ToInt32(mo["CurrentTemperature"]) - 2732) / 10).ToString()); 
} 

ManagementObjectSearcher mos1 = new System.Management.ManagementObjectSearcher(@"root\cimv2", "SELECT * FROM Win32_Fan"); 
foreach (ManagementObject mo in mos1.Get()) 
{ 
   MessageBox.Show(mo["DesiredSpeed "].ToString()); 
}

问题是MoBo制造商有时不提供信息。如果与此解决方案或您的解决方案不兼容,请检查主板的规格。

更具体一些。你们会犯什么错误?伙计们放松点,OP是新的。我需要找到gpu传感器的细节,比如风扇速度,温度等等,这就是我的帖子的答案。它显示了如何获得当前温度和“所需”风扇转速。有几十个其他的阅读资料,你可以得到,但一些制造商提供略有不同的MoBo功能,特别是在游戏行业/市场。