подсчет сколько времени была нажата клавиша

Ninthmoon

Известный
Автор темы
463
127
это консольное приложение, которое считает сколько миллисекунд прошло с момента нажатия z, до следующего нажатия z. Вопрос в том, как сделать чтобы начало считать время, пока нажата клавиша z, и перестало считать, когда клавишу z отпустили?
ПЫ.СЫ. не нужно писать что код говно, и то что максимум он посчитает правильно до 59999ms, это я могу исправить
желательно отвечайте полным ответом, с кодом
C++:
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
    cout << "press z key to start timer" << endl;
    int hueta1, hueta2;
    char k = _getch();
    switch(k)
    {
    case 122:
        cout << "timer launched..." << endl;
        SYSTEMTIME st;
        GetLocalTime(&st);
        int sec1 = st.wSecond;
        int ms1 = st.wMilliseconds;
        for (int i = 0; i != sec1; i++)
        {
            ms1 += 1000;
            hueta1 = ms1;
        }
        cout << "press z key to stop timer" << endl;
        char k = _getch();
        switch (k)
        {
        case 122:
            cout << "timer stopped" << endl;
            SYSTEMTIME st;
            GetLocalTime(&st);
            int ms2 = st.wMilliseconds;
            int sec2 = st.wSecond;
            for (int i = 0; i != sec2; i++)
            {
                ms2 += 1000;
                hueta2 = ms2;
            }
            if (hueta1 < hueta2)
            {
                int i = hueta2 - hueta1;
                cout << i << "ms" << endl;
            }
            if (hueta1 > hueta2)
            {
                int i = 60000 - hueta1 + hueta2;
                cout << i << "ms" << endl;
            }
            break;
        }
    }
    _getch();
    return 0;
}