Получение температуры процессора с помощью WMI

      Для получения информации о температуре центрального процессора и системной платы воспользуемся одной из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows - Windows Management Instrumentation (WMI). Так как WMI построен по объектно-ориентированному принципу, то все данные операционной системы представлены в виде объектов и их свойств и методов. Все классы группируются в пространства имен, которые иерархически упорядочены и логически связаны друг с другом по определенной технологии или области управления. В WMI имеется одно корневое пространство имен Root, которое в свою очередь имеет 4 подпространства: CIMv2, Default, Security и WMI. Воспользуемся последним подпространством «WMI» и его классом «MSAcpi_ThermalZoneTemperature». Данный класс содержит данные об текущей температуре системной платы и центрального процессора.
     Создайте проект Windows Form в Microsoft Visual Studio и добавьте на главную форму два компонента:
  • ListBox
  • Button
У вас получится примерно такой вариант:
      Сделайте двойной клик левой клавишей мыши по компоненту «Button» и перейдите в автоматически созданный метод «button1_Click», добавьте в него приведенный ниже листинг.
listBox1.Items.Clear();
try
{
    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.0;
        listBox1.Items.Add(" CPU: " + CPUtprt.ToString() + " ° C");
    }
}
catch (ManagementException ex)
{
    MessageBox.Show("Ошибка получения данных " + ex.Message);
}
      Запустите ваш проект и нажмите на единственную кнопку на главной форме. Для проверки работы программы воспользуйтесь любым приложением предоставляющим информацию с температурных датчиков. Например, вы можете воспользоваться программой Everest.
Скачать портативную версию программы Everest, вы можете ниже.

Ссылка на Everest: Rusfolder.net


Ссылка на исходник: Rusfolder.net


2 комментария:

  1. Зузыч Зузеев24 июля 2015 г. в 09:47

    Не работает чёт, ManagementObjectSearcher не найден.


    using System.Management; есть

    ОтветитьУдалить
  2. Здравствуйте, а вы добавили ссылку на данную библиотеку в References (Ссылки) в окне
    Solution ExplorerSolution Explorer (Обозреватель решений), доступный через меню
    View (Вид)?

    ОтветитьУдалить

Большая просьба, не писать в комментариях всякую ерунду не по теме!