Ils ont demandé comment capturer des touches telles que F11 ou getchr de insand ne retourne rien pour les clés, et il n'y a rien que je peux trouver de travail qui accepte l'entrée brute des événements d'entrée ..getch renvoie -1?
Je suis maintenant en train ncurses/malédictions dans un programme C++ pour capturer ces clés.
Mon programme de test est simple, il est essentiellement:
#include <stdlib.h>
#include <stdio.h>
#include <curses.h>
int main() {
int car;
while(c != '\b') {
c = getch();
printf("%i", c);
}
return 0;
}
Je l'utilise bien sûr identique à une autre fonction getch(), mais il retourne -1
fois infini .. J'utilise un noyau récent dans Arch linux, dans un terminal standard (également testé en xterm
)
Y a-t-il un commutateur que je dois activer pour utiliser getch() dans les bibliothèques?
Je ne suis pas un expert en malédiction, mais il semblerait que vous vouliez également appeler 'keypad (stdscr, TRUE);' pour que ncurses puisse traduire les clés spéciales en échappement et retourner 'getch()' les valeurs pratiques définies par * KEY_ * macros. par exemple. 'if (getch() == KEY_F0 + 11) {/ * f11 pressé * /}' –
Merci. Mes clés FN ne fonctionnent pas sur Linux pour une raison quelconque, donc je ne peux pas les tester, mais ça fonctionne sur les étranges comme insert et autres .. J'espère que je n'ai pas besoin de mapper le clavier pour entrer les fn + touches ins et trucs pour obtenir une pause: \ – John