J'essaye d'obtenir que mon application C exécute certaines tâches quand on appuie sur le bouton ctrl + k (OU CTRL SHIFT K pas encore sûr), la documentation est un peu scscale mais j'ai pu trouver un cpp exemple et a essayé d'imiter ce code:raccourcis clavier globaux utilisant xlib
Display* dpy = XOpenDisplay(0);
Window root = DefaultRootWindow(dpy);
XEvent ev;
unsigned int modifiers = ControlMask | ShiftMask;
int keycode = 45;
int pointer_mode = GrabModeAsync;
int keyboard_mode = GrabModeAsync;
XGrabKey(dpy, keycode, modifiers, root, 0, pointer_mode, keyboard_mode);
XSelectInput(dpy, root, KeyPressMask);
while(0)
{
XNextEvent(dpy, &ev);
if (ev.type == KeyPress)
printf("key has been pressed\n");
}
Je comprends les touches de clavier sont capturés par la fonction XGrabKey, l'événement xnext lit l'événement et storees que ev, qui je compare le type à la pression de touche XEvent tapez, le message ne s'imprime pas, j'ai essayé ctrl + k et shift + k et ctrl + shift + k
La boucle de votre programme est-elle vraiment 'while (0)'? – duskwuff
n'est-ce pas supposé continuer à lire les événements? À l'infini? –
Je viens de le remarquer !!!!! –