C#如何获取电脑CPU温度,硬盘温度,主板温度,CPU转速

解决方案 »

  1.   


                string 硬盘温度 = "MSStorageDriver_ATAPISmartData";
                string CPU温度 = "MSAcpi_ThermalZoneTemperature";            Double 温度 = 0;            ManagementObjectSearcher mos = new ManagementObjectSearcher(@"root\WMI", "Select * From " + CPU温度);
                foreach (System.Management.ManagementObject mo in mos.Get())
                {
                    温度 = Convert.ToDouble(Convert.ToDouble(mo.GetPropertyValue("CurrentTemperature").ToString()) - 2732) / 10;
                    Console.WriteLine("CPU温度 : " + 温度.ToString() + " °C");
                }            mos.Query = new ObjectQuery("Select * From " + 硬盘温度);
                foreach (System.Management.ManagementObject mo in mos.Get())
                {
                    byte[] data = (byte[])mo.GetPropertyValue("VendorSpecific");
                    Console.WriteLine("硬盘温度:" + data[3] + " °C");
                }
    将就看着
    你可以查询WQL,WMI,或者ManagementObjectSearcher的相关信息了解。
    调用系统API可能也OK。
      

  2.   

    WMICodeCreator.exe 用这个工具去找,
    方法楼上是正确的。
      

  3.   

    查询电脑硬件信息使用WMI,使用WMI工具,找到你需要的类库,方法为2楼的方法。
      

  4.   

    WMI Windows Management Instrumentation 提供系统、装置和应用程式资讯,在 .NET 中提供 System.Management 命名空间 取得 WMI 讯息,以下介绍如何取得 CPU 温度与序号2.1 使用 ManagementObjectSearcher 类别,使用前必须先将 System.Management 加入参考未命名3、代码的实现Double CPUtprt = 0;System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(@"root\WMI", "Select * From MSAcpi_ThermalZoneTemperature");foreach (System.Management.ManagementObject mo in mos.Get()){     CPUtprt = Convert.ToDouble(Convert.ToDouble(mo.GetPropertyValue("CurrentTemperature").ToString()) - 2732) / 10;textBox1.Text = ("CPU 温度 : " + CPUtprt.ToString() + " °C");}
      

  5.   

    http://www.codeproject.com/Articles/25783/WMI-Provider-Extensions-in-NET-3-5
    参考
      

  6.   

    在net中已经封装了System.Management,这里提供的功能已经足以获取系统的信息
      

  7.   

    用SNMP可以吗???例如mib浏览器,需要哪些mib文件??谢谢