Registrando uma HotKey Global sem desabilitar sua chave

Eu quero fazer um programa que possa capturar eventos de teclado, mesmo que não esteja ativo em nenhum momento. Ganchos eram muito complicados com todas as coisas que eu tenho que fazer para fazê-lo funcionar (fazendo uma DLL, lendo, etc) então decidi continuar usando hotkeys.

Mas agora eu tenho um problema. Registrar a tecla de atalho desativa a tecla no teclado, portanto, só posso enviar a chave para o programa, enquanto não consigo digitar em nenhum outro programa (por exemplo, o bloco de notas).

Este é o meu código:

#include <iostream>
#include <windows.h>
using namespace std;

int main(int argc, char* argv[]) {
    RegisterHotKey(NULL, 1, NULL, 0x41); //Register A
    MSG msg = {0};

    while (GetMessageA(&msg, NULL, 0, 0) != 0) {
        if (msg.message == WM_HOTKEY) {
            cout << "A"; //Print A if I pressed it
        }
    }

    UnregisterHotKey(NULL, 1);
    return 0;
}

// and now I can't type A's

Existe alguma solução simples para este problema? Obrigado

questionAnswers(1)

yourAnswerToTheQuestion