gpt4 book ai didi

c++ - 死键问题(急性,分音符等)c++

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:00:54 25 4
gpt4 key购买 nike

我目前正在使用 X11 库为 Linux 编写自己的虚拟键盘,但我找不到模拟任何死键的 KeyPress 事件的方法。例如,我曾尝试使用赋值宏 XK_aacute 编写“á”,但没有任何反应。后来我尝试发送 XK_acute(尖音符宏),然后发送 XK_a,再一次,没有任何反应 :(

在KDE虚拟键盘“Kvkbd”中可以做到这一点,所以我下载了源代码,但它只支持英文键盘布局

这是我的测试代码:

#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
#include <iostream>

int main(){
Display *display;
unsigned int keycode;
unsigned int keycode1;
display = XOpenDisplay(NULL);

keycode = XKeysymToKeycode(display, XK_aacute);
XTestFakeKeyEvent(display, keycode, True, 0);
XTestFakeKeyEvent(display, keycode, False, 0);

keycode1 = XKeysymToKeycode(display, XK_acute);
XTestFakeKeyEvent(display, keycode1, True, 0);


keycode = XKeysymToKeycode(display, XK_a);
XTestFakeKeyEvent(display, keycode, True, 0);
XTestFakeKeyEvent(display, keycode, False, 0);

XTestFakeKeyEvent(display, keycode1, False, 0);


keycode = XKeysymToKeycode(display, XK_D);
XTestFakeKeyEvent(display, keycode, True, 0);
XTestFakeKeyEvent(display, keycode, False, 0);
XFlush(display);
}

任何帮助或想法将不胜感激

最佳答案

我刚刚想通了 ¬¬

#include <X11/extensions/XTest.h>
#include <X11/keysym.h>
#include <X11/Xlib.h>
#include <iostream>

int main(){
Display *display;
unsigned int keycode;
unsigned int keycode1;
display = XOpenDisplay(NULL);

keycode1 = XKeysymToKeycode(display, XK_dead_acute);
XTestFakeKeyEvent(display, keycode1, true, 0);


keycode = XKeysymToKeycode(display, XK_A);
XTestFakeKeyEvent(display, keycode, true, 0);
XTestFakeKeyEvent(display, keycode, false, 0);

XTestFakeKeyEvent(display, keycode1, false, 0);

XFlush(display);
}

我用错了宏

关于c++ - 死键问题(急性,分音符等)c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2391476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com