c++代码的CPU负载和CPU温度

C++ code for CPU load and CPU temperature

本文关键字:CPU 温度 负载 c++ 代码      更新时间:2023-10-16

我想查看Windows中的CPU温度和CPU负载。我必须自己写,而不是使用Core Temp这样的软件,我如何访问这些信息?

我读过一个类似的问题,但是没有有用的答案:

最近我开始了一个类似的项目。我需要读取cpu温度,并在Linux和Windows系统中控制风扇。我不太了解c++和VS和DDK,但我知道如何用winring0编写一个简单的内核驱动程序和一个简单的程序。在我的笔记本电脑(以及其他大多数笔记本电脑)中,温度和风扇由嵌入式控制器控制。你有两种选择,要么你可以写一个内核驱动程序,要么你可以使用一个库来访问嵌入式控制器。这是因为Windows保护ec不被普通用户权限访问。一个很好的(和工作)库是winring0 (WinRing0_1_3_1b)。在Windows中检查ec和其他所有东西的一个有用的程序是RW工具。

看看从MSDN论坛获取CPU温度,有一些方法。

对于sane way,您可以使用Win32_TemperatureProbe类,它从SMBIOS获取其信息。

在我读过的所有论坛和帖子中,我还没有看到使用WMI的成功实现。有人声称它可以工作,然后有人说我得到了错误xyz,这意味着它不适用于所有处理器和主板。我也没有成功。

使用OpenHardware Monitor它可以工作,但在我的实现中它只提供CPU温度而不是线程温度,与我首选的Core temp实现相比,它非常慢。缺点是Core temp是一个必须在temp数据可以提取之前运行的应用程序,我不知道直接的DLL替代方案。但是它很快,并且提供了所有平台上的所有线程temp。