繁体   English   中英

X11 / Xlib C / C ++字符转换为XKeyEvent键码

[英]X11/Xlib c/c++ char to XKeyEvent keycode

我需要将char转换为键码,以使用XSendEvent发送事件。

我正在使用XStringToKeysym("a") ,但是当我使用如下字符时:我得到了无效的结果。

是否可以绕过使用keysym并将char直接转换为XKeyEvent键码?

任何帮助表示赞赏!

您可以获取字符的Unicode表示形式,并在字符前加上U 例如,在以下情况下:这些会做同样的事情:

XStringToKeysym("colon")
XStringToKeysym("U003A")

实际上,您可以比@Artyom的答案做得更好。 如果查看<X11/keysymdef.h>则会发现对于ASCII 0x20-0xFF,字符直接映射到XKeySyms 因此,我想说直接将该范围的字符用作KeyCodes并映射其余的32个字符会更简单。

有关包括示例代码的更详细的答案,请参阅: https : //stackoverflow.com/a/25771958/3149905

XStringToKeysym将名称转换为键符,因此":"将不起作用,而必须使用"colon"

键盘代码不是标准的(键盘布局各不相同),因此使用了键盘符号,它们在<X11/keysymdef.h>中定义。

最好的办法是将XKeysymToKeycode与XK_a和XK_colon一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM