Windows 8 任务管理器显示 CPU 的当前(不是最大)频率(例如 1.2 GHz)。有没有办法通过 Windows API 获得这个频率?最好使用 Delphi 或 Visual C++。
https://stackoverflow.com/a/78403806/7609214
通过以下方法得到的频率与任务管理器中的CPU速度类似
#include <Pdh.h> // link to Pdh.lib
#define YOUR_CPU_MAX_FREQUENCY 3.3
HQUERY hquery;
// https://learn.microsoft.com/en-us/windows/win32/api/pdh/nf-pdh-pdhopenquerya
PdhOpenQueryA(nullptr, NULL, &hquery)
HCOUNTER hcounter;
// https://learn.microsoft.com/en-us/windows/win32/api/pdh/nf-pdh-pdhaddcountera
PdhAddCounterA(hquery, "\\Processor Information(_Total)\\% Processor Performance", NULL, &hcounter)
PdhCollectQueryData(hquery);
Sleep(200);
PdhCollectQueryData(hquery);
PDH_FMT_COUNTERVALUE value;
PdhGetFormattedCounterValue(hcounter, PDH_FMT_DOUBLE, nullptr, &value);
PdhCloseQuery(hquery);
double frequency = value.doubleValue / 100 * YOUR_CPU_MAX_FREQUENCY;
频率将是一个实时变化的值(以ghz为单位),例如1.2、2.6、...