Taste gedrückt unter Win98 ???



  • Hallo,

    Ich möchte abfragen, ob eine bestimmte Taste gedrückt ist.
    Wie kann ich dies ohne Callback-Handler realisieren ?
    Unter WinXP funktioniert es mit GetAsyncKeyState. Die Funktion überprüft, ob eine bestimmte Taste zwischen dem letzten Aufruf gedrückt wurde. Unter Win98 wird die Tastatur anscheinend nicht während des Programmablaufs überprüft.

    Brauche dringend (ausführliche) Hilfe und wenn möglich ein Code Beispiel.

    Vielen Dank im Voraus,

    Tim



  • lowlevel könntest du etwas mit

    kbhit (erkennt, ob taste gedrückt ist)

    und dann

    getch (holt direkt ein zeichen von der konsole ab ohne return)

    bauen, beides funktionen aus der conio.h

    eine schleife mit kbhit wäre ev. eine lösung.



  • hi kannst mir mal bitte die syntax von kbhit() geben?
    komm damit nit klar und find auch nichts dazu.
    schonmal danke
    wäre nett wenn du mir ein kurzes beispiel geben könntest



  • #include <conio.h>
    #include <stdio.h>
    
    int main(){
      while ( ! kbhit() ){//solange keine taste gedrückt ist
         printf("blub\n");
      }
    
    }
    


  • Danke,

    es hat geklappt ...



  • danke für das beispiel



  • gibt es auch die möglichkeit auf bestimmte tasten zu reagieren?
    z.b. nur bei enter oder so
    hab bisschen probiert aber habe noch nicht viel ahnung davon
    bitte helft mir
    danke schonmal



  • dieses "bitte helft mir" nervt ein wenig. was denkst du, was die leute hier machen die ganze zeit. *nerv*

    na ja, hier ein stückchen folgecode, und dann verbinde du mal beides miteinander(programmieren lernt man auch durch try und error 😉 ), kbhit und getch getch (achte darauf, dass du zweimal getch verwenden musst für die steuerzeichen enter, pfeil, etc..)

    #include<stdio.h>
    #include<conio.h>
    
    int main(){
        unsigned char chr;
    
        do{
            chr=getch();
            if ((chr==224) || (chr==0)){
               chr=getch();
    
               switch(chr){
               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);
    }
    


  • Wäre auch in der FAQ zu finden gewesen 🙂

    MfG SideWinder


Anmelden zum Antworten