C++ 尝试在Ubuntu Linux中构建全局键盘挂钩时出错
我正在开发一个代码来获取按键和释放事件中的键盘输入,但是当我运行程序时什么都没有发生,我的代码有什么问题吗?如何获得按下的按键值C++ 尝试在Ubuntu Linux中构建全局键盘挂钩时出错,c++,linux,x11,C++,Linux,X11,我正在开发一个代码来获取按键和释放事件中的键盘输入,但是当我运行程序时什么都没有发生,我的代码有什么问题吗?如何获得按下的按键值 void hook() { forever { XEvent event; Display *dpy = XOpenDisplay(NULL); XNextEvent(dpy, &event); switch (event.type) { case
void hook()
{
forever
{
XEvent event;
Display *dpy = XOpenDisplay(NULL);
XNextEvent(dpy, &event);
switch (event.type)
{
case KeyPress:
qDebug() << "keypress";
break;
case KeyRelease:
qDebug() << "keyrelease";
break;
}
}
}
void hook()
{
永远
{
XEvent事件;
Display*dpy=XOpenDisplay(空);
XNextEvent(dpy和事件);
开关(事件类型)
{
外壳按键:
qDebug()了解更多信息。如果某些X11窗口在其中设置了一些KeyPressMask
或keypreleasemak
位,则只能从该窗口中获取。该窗口应为InputOnly
或InputOutput
显然,您正在使用Qt(这是一个好主意)。然后,继续使用Qt事件
(如果要捕获所有X11键事件,请使用显示器的根窗口。但这样做会干扰窗口管理器,这是一个坏主意;了解有关和的更多信息)
另外,在终端中运行xev
,以了解有关X11事件的更多信息