我正在编写一个需要听用户键盘敲击的程序。
我使用函数 XGrabKeyboard() 这是我的代码:
XGrabKeyboard(pDisplay, DefaultRootWindow(pDisplay), True, GrabModeAsync, GrabModeAsync, CurrentTime);
XEvent event;
while (true)
{
XNextEvent(pDisplay, &event);
switch (event.type)
{
...
}
}
但它会导致键盘和光标被冻结。
我查看了手册页,它只说:“第三个参数指定一个布尔值,指示是否要像往常一样报告键盘事件。”
我尝试了 true 或 false 或第三个参数,GrabModeAsync 和 GrabModeSync 都用于第四个和第五个参数,但它不起作用。
调用 XGrabKeyboard() 后,键盘被冻结,鼠标点击无响应。
有任何想法吗?