Tastencodes



  • Hallo,
    im FAQ steht ein Bericht über das Auslesen von Sondertasten, in dem
    auf eine Seite für Pascal hingewiesen wird.

    Um die Cursortasten abzufangen habe ich daraufhin folgenden code
    geschrieben:

    for(;;)
    {
    
        if(getch()==0)
        {
    
            if(getch()==72)
                cout << "hoch";
            else if(getch()==80)
                cout << "runter";
            else if(getch()==75)
                cout << "links";
            else if(getch()==77)
                cout << "rechts";
            else 
                cout << "keine Cursortaste, sondern Funktionstaste";
        }
        else 
        {
            cout << "keine Cursortaste";
            break;
        }
    }
    

    Doch leider zeigt er immer an, dass er keine Cursortaste empfangen
    hat. Wieso? Was ist falsch an diesem Code?

    Tschau Gartenzwerg



  • du musst noch ein getch davor setzen, es gibt bei den tasten zwei werte...(224)
    den ersten bis return musst du abfangen, dann kommt die 72

    #include<stdio.h>
    #include<conio.h>
    #include <ctype.h>
    #include <string.h>
    
    int main(){
        unsigned char chr;
    
    do
        {
        chr=getch();
            printf("%i",chr);
            if ((chr==224) || (chr==0))
            {
                chr=getch();
                printf("%i",chr);
    
                switch(chr)
                {
    
                case 13:
                    printf("go");
                        break;
                    case 75:                            
                        printf("<-");
                        break;
    
                    case 77:                           
                        printf("->");
    
                        break;
    
                    case 83:                            
                        printf("ENTF");
                        break;
    
                    case 82:                            
                        printf("EINF");
                        break;
    
                    case 80:                           
                        printf("pfeil nach unten");
    
                        break;
                    case 79:  
                        printf("ENDE");                           
    
                    break;
                    case 72:  
                        printf("pfeil nach oben");                           
    
                    break;
                }
            }
        }while(true);
        return 0;
    }
    

    [ Dieser Beitrag wurde am 14.07.2002 um 11:35 Uhr von elise editiert. ]



  • Danke schön.

    Tschau Gartenzwerg


Log in to reply