tastatur abfrage?



  • Hallo,

    sorry falls ich mit meinem Problem im falschen Bereich bin, weiß aber sonst
    net wo hin damit.

    Ich möchte die Tastatur abfragen ob irgendeine Taste gedrückt wurde, wie
    std::cin oder getch, oder std::cin.get oder kA was alles, aber er soll
    nicht auf eine Eingabe warten sondern nur schauen ob was da is,
    kurzes Beispiel:

    while(!bQuit){
    if(/*abfrage ob was gedrückt wurde*/){
        Typ gedrueckte_taste = /* taste die gedrueckt wurde speichern */
        mit_der_eingabe_was_machen(gedrueckte_taste);
    }
    }
    

    Gibt es da irgendeine Möglichkeit das zu realisieren?

    Ich hab mir schon GetKeyboardState(PBYTE) angesehen, jedoch komme ich damit
    net klar, da ich die Abfrage welche Taste gedrueckt wurde net versteh.

    GetKeyState(int) oder GetAsyncKeyState(int) sind leider nur gut wenn man weiß
    welche Taste gedrückt werden soll, möchte aber das der Nutzer halt irgendwas
    eingeben kann, ohne das des Programm darauf wartet...

    Ich hoffe das Problem is verständlich.. 🙂

    Schöne Grüße eichelt / Stefan



  • Hattest doch den richtigen Ansatz 😉

    void Mit_Der_Eingabe_Was_Machen( char* pKeys, ULONG Count )
    {
    }
    
    while ( ! bQuit )
    {
        // Sucht die Tasten raus, die seit dem letzten Durchlauf gedrückt wurden.
        CHAR Keys[256];
        CHAR Pressed = 0;
        for ( ULONG i=0; i<256; i++ )
            if ( GetAsyncKeyState(i) & 1 )
                Keys[Pressed++] = i;
    
        // Wenn irgendwelche Tasten gedrückt wurden...
        if ( Pressed != 0 )
        {
            Mit_Der_Eingabe_Was_Machen( Keys, Pressed );
        }
    }
    

    GetAsyncKeyState für Prüfung, ob seit dem letzten Aufruf von GetAsyncKeyState die Taste gedrückt wurde, GetKeyboardState um zu gucken, welche Taste im Moment gedrückt ist.



  • Super, das wars, danke dir. 🙂


Anmelden zum Antworten