2
我目前正在写我自己的虚拟键盘为Linux使用X11库,我只是无法找到方法来模拟KeyPress事件的任何死钥匙。 例如,我曾尝试使用asign宏编写“á”,它是XK_aacute,没有任何反应。 后来我试图发送XK_acute(急性口音宏),然后XK_a,并再次,没有任何反应:(死钥匙(急性,diaeresis等)问题c + +
在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);
}
任何帮助或想法将大大apreciated
这帮助我用我自己的应用程序谢谢! – eqzx 2011-06-23 22:38:22