我想向X发送合成按键事件。对于使用XSendEvent
发送KeyPress
事件的大多数密钥,这似乎都能正常工作。不幸的是,我无法让它工作在键盘上实际上不在键盘上 - 在这种情况下是英镑符号£(我有一个美国键盘)。
问题似乎是XKeyEvent
结构需要keycode
而我只有KeySym
这个标志。 XKeysymToKeycode
返回0,因为没有密钥。
有谁知道我怎么能做到这一点?可能我需要一些相当不同的方法 - 任何建议都值得赞赏!
答案 0 :(得分:2)
查看xdotool。
答案 1 :(得分:1)
@Peter你正在寻找正确的方向。部分挑战是KeySyms
的集合远大于keycode
的大小。您可以在合成事件之前修改键映射来解决此问题。
查看libfakekey
:http://git.yoctoproject.org/cgit/cgit.cgi/libfakekey/tree/src/libfakekey.c
特别是:fakekey_press_keysym
函数需要KeySym
发送而不仅仅是代码。