--------------------------
Window root ;
XEvent event;
Display *dpy = XOpenDisplay(0);
if(!dpy)
{
printf("Error for openning display.\nExit..\n");
return ;
}
root = DefaultRootWindow(dpy);
KeyCode key = XKeysymToKeycode(dpy,XK_F8);
printf("\n key = %X \n", key);
unsigned int mod = 0 ;
mod = mod | ControlMask ;
printf("\n mod=%d \n",mod);
XGrabKey(dpy, key , mod , root,True, GrabModeAsync, GrabModeAsync);
for(;;)
{
XNextEvent(dpy, &event);
if(event.type == KeyPress && event.xkey.keycode == key ) //
{
// do sth...
}
}
XAllowEvents(dpy,AsyncKeyboard,CurrentTime);
XUngrabKey(dpy, key, AnyModifier, root);
XSync(dpy,false);
--------------------------------
代码如上,就是截获不到组合键的信息,
设置成XGrabKey(dpy, key , AnyModifier, root,True, GrabModeAsync, GrabModeAsync);
可以截获单键的信息,
但是键盘组合呢? 怎么解决?
江湖救急...