Tastendruck parallel simulieren



  • Hallo,

    wie würdet ihr das angehen, mit einer simplen Konsolenanwendung, durch Drücken einer Taste wie VK_RETURN zugleich eine andere Taste zu drücken, wie VK_SPACE?

    Also wenn z. B. Enter gedrückt ist, ist zugleich auch Space gedrückt?

    Ich denke ganze Zeit in Richtung keybd_event und GetKeyState aber komme irgendwie auf keinen grünen Zweig 😕

    Also in erster Linie weil ich mit GetKeyState zwar feststellen kann ob Enter gedrückt ist, aber ich keine Funktion kenne, die nun Space gedrückt hält und automatisch released, wenn Enter nicht gedrückt ist, was wohl daran liegt, dass ich hier keine Windows Messages verwenden kann.

    Liebe Grüße



  • Man könnte ganz brutal folgendes in einem eigenen Thread laufen lassen:

        bool spacePressed = false;
    
        while (true) {
            SHORT const rc = GetAsyncKeyState(VK_ENTER);
            bool const desiredSpacePressed = (rc & (1 << 15)) != 0;
    
            if (desiredSpacePressed != spacePressed) {
                if (desiredSpacePressed)
                    keybd_event(VK_SPACE, 0, 0, 0);
                else
                    keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
                spacePressed = desiredSpacePressed;
            }
    
            Sleep(10);
        }
    

    Wobei ich mir ziemlich sicher bin dass das eleganter geht. Möglicherweise mit Raw-Input.


Anmelden zum Antworten