gpt4 book ai didi

c - 如何在 X11 中使用修改键从 KeyPress 和 KeyRelease 事件中获取虚拟键代码

转载 作者:行者123 更新时间:2023-11-30 16:37:08 24 4
gpt4 key购买 nike

当从 X11 接收到 KeyPressKeyRelease 事件时,如何将结果转换为映射到物理键 0 到 9 和 A 到 Z 的虚拟代码,与键盘布局无关,也与按下的任何修饰键无关?

我已经尝试过这个:

XLookupString((XKeyEvent *) &ev, buffer, 10, &keysym, &compose);

这给了我一个keysym,但这不是我想要的,因为一旦按下 SHIFT、ALT 等修饰键之一,它就会改变。例如,在德语键盘上按住 SHIFT 按下“1”时,keysym 将为 33,对应于 ! 字符。但是,我想要获得“1”已被按下的信息。

我还尝试查看 XKeyEventkeycode 成员,但这也没有帮助,因为它似乎是原始扫描代码,在这里没有帮助因为它会映射到不同语言的不同键。

那么,即使 SHIFT、ALT 等修饰键也按下了,我怎样才能找到按下的键呢?

最佳答案

回答我自己的问题:将 index 参数设置为 0 的 XKeycodeToKeysym() 允许我从 XKeyEvent 获取原始 key ,而无需进行任何修饰符修改.

关于c - 如何在 X11 中使用修改键从 KeyPress 和 KeyRelease 事件中获取虚拟键代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48098629/

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