[英]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.