相关疑难解决方法(0)

在X11中聆听键盘事件而不消耗它们 - 键盘挂钩

我尝试编写一个程序,它挂钩键盘消息,在Ubuntu(KDE)中按下时发出每个键的名称; 不干扰程序中键盘的正常操作(只是宣布键名).

这是我的计划:

#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>

using namespace std;

void SendPressKeyEvent(Display *display, XKeyEvent xkey)
{
    Window current_focus_window;
    int current_focus_revert;
    XGetInputFocus(display, &current_focus_window, &current_focus_revert);
    xkey.type =  KeyPress;
    xkey.display = display;
    xkey.window = current_focus_window;
    xkey.root = DefaultRootWindow(display);
    xkey.subwindow = None;
    xkey.time = 1000 * time(0);
    xkey.x = 0;
    xkey.y = 0;
    xkey.x_root = 0;
    xkey.y_root = 0;
    xkey.same_screen = True;
    XSendEvent(display, InputFocus,  True, KeyPressMask, (XEvent *)(&xkey));
}

void SendReleaseKeyEvent(Display *display, XKeyEvent xkey)
{
    Window current_focus_window;
    int …
Run Code Online (Sandbox Code Playgroud)

c++ linux x11 keyboard-hook xlib

7
推荐指数
2
解决办法
6580
查看次数

标签 统计

c++ ×1

keyboard-hook ×1

linux ×1

x11 ×1

xlib ×1