taste
-
hallo
ich lerne zurzeit c++, bin noch nicht so gut und ich möchte ein kleines programm schreiben. folgendes sollte es enthalten:
nach einlesen einer "funktionstaste" wie F1,F2...usw einen ton ausgeben
mit enter beenden
und bei drücken eines buchstabens, dann soll es im fenster auch angezeigt werden
bin jetzt bis dahin gekommen und komme nicht mehr weiter an der stelle wo es die buchstaben drucken soll. ich hab die getch() funktion genommen, weil ich es ohne bestätigung einer eingabe machen möchte
könnt mir jemand vielleicht helfen?int main ()
{int x=0;
unsigned char taste;
do
{
taste = getch();
// hier sollte man dann im cmd schreiben können (so irgendeine funktion wie: if (taste==keine funktionstaste) {-->schreiben)}else if (taste != 0x00) {printf("\a");}
}
while (taste!=0x0D); // bis enter gedrückt
}
-
Hallo,
ich weiss nicht, ob man Funktionstasten mit getch() abfangen kann.
könntest es ja mit GetAsyncKeyState machen:#include <windows.h> int main () { bool KeyPressed = false; int iKey; while(!KeyPressed) { for(iKey=0x05;iKey<255;iKey++) { if(GetAsyncKeyState(iKey)) KeyPressed = true; break; } Sleep(1); } // Hier steht nun in der Variablen iKey der Wert der Taste, die eben gedrückt wurde. // Prüfen geht dann so: if(iKey==VK_F12){/* F12 wurde gedrückt. */} }Es gibt bestimmt noch sauberere Lösungen, aber das ist alles, was mit jetzt eingefallen ist.
Edit: hab noch einen Fehler in der for-schleife berichtigt.
MfG, Jochen
-
Töne ausgeben kannst du mit Beep. (windows.h)
Damit kann man auch schöne Melodien machen. Finde ich besser als printf('\a');
-
Untersuche erstmal, was getch bei welchen Tasten zurückgibt. Du wirst erfreut sein.
int main () { for(;;) { int taste=getch(); cout<<taste<<'\n'; } }
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.