Funktion getch() mit API nachprogrammieren??
-
Hallo,
versuch mit API die Funktion getch() nachzuprogrammieren.
..bin wohl mit INPUT_RECORD, KEY_EVENT etc. auf dem richtigem Weg.
Kann mir einer helfen?mfg
..mamibu
-
Du bist in der Tat richtig.
Also getch() sieht circa so aus:
- Konsolenmodi setzen um Ausgabe zu verhindern, etc.:
GetConsoleMode() // verwenden um die derzeitigen Modi zu speichern SetConsoleMode() // verwenden um die Modi zu setzen (siehe MSDN, kein ENABLE_LINE_INPUT und kein ENABLE_ECHO_INPUT)
- Solange ein INPUT_EVENT auslesen bis man ein KEY_EVENT hat:
while(...) { // Einlesen INPUT_RECORD ir; DWORD charsread (0); ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),&ir,1,&charsread); // Prüfen // ... }
- Bzw. HighLevel-Funktion nutzen um direkt ein Zeichen auszulesen:
char zeichen (0); DWORD charsread (0); ReadConsole(GetStdHandle(STD_INPUT_HANDLE),&zeichen,1,&charsread,0);
- Modi wieder resetten
SetConsoleMode() // aufrufen mit den zuvor gespeicherten alten Einstellungen
- Eingelesenes Zeichen zurückgeben.
So damit solltest du es eigentlich schaffen, bei weiteren Fragen einfach posten :).
MfG SideWinder