**Current Situation:**  

I'm looking to try and measure the current CPU utilisation of my system in Hertz.

I've had a look at [this answer](https://stackoverflow.com/a/64166/4343260) which addresses my question, however I cannot seem to make the code work.

This is my current **code** in `main.cpp` (from the answer):

```
#include <Pdh.h>
#include <PdhMsg.h>
#include <Windows.h>

static PDH_HQUERY cpuQuery;
static PDH_HCOUNTER cpuTotal;

void init()
{
    PDH_STATUS a = PdhOpenQuery(NULL, NULL, &cpuQuery);
    PDH_STATUS i = PdhAddCounter(cpuQuery, L"\\Processor(_Total)\\% Processor Time", NULL, &cpuTotal);
    PdhCollectQueryData(cpuQuery);
}

double getCurrentValue()
{
    init();
    PDH_FMT_COUNTERVALUE counterVal;

    PdhCollectQueryData(cpuQuery);
    PdhGetFormattedCounterValue(cpuTotal, PDH_FMT_DOUBLE, NULL, &counterVal);
    return counterVal.doubleValue;
}

int main()
{
    double CPUUsage = getCurrentValue();
}

```

**The Problem:**  

The value returned from `getCurrectValue()` is zero.

**Related Observations:**  

I have observed, that the values in `a` and `i` of type `PDH_STATUS` are both zero? I speculate that this could be related to my lack of a value in `CPUUsage`, although I'm not sure why the function wouldn't be returning properly into these values.

**Additional information:**  

I haven't used PDH before.