我正在尝试模拟键盘和鼠标事件,我已经成功地进行了假键盘的键盘按下,键盘输入。伪造的鼠标按下,向上移动和假鼠标移动,但是我没有找到如何进行假鼠标滚轮移动的方法,有人可以向我解释在C++中执行此操作的简单方法吗?

鼠标移动和鼠标按钮按下:

Display *dpy = XOpenDisplay(NULL);
XTestFakeMotionEvent(dpy, -1, 50, 50, 0);
XTestFakeButtonEvent(dpy, Button1, true, 0);
XTestFakeButtonEvent(dpy, Button1, false, 0);
XFlush(dpy);
XCloseDisplay(dpy);

键盘按键按下:
Display *dpy = XOpenDisplay(NULL);
unsigned int keycode = XKeysymToKeycode(dpy, XK_Super_L);
XTestFakeKeyEvent(dpy, keycode, true, 0);
XTestFakeKeyEvent(dpy, keycode, false, 0);
XFlush(dpy);
XCloseDisplay(dpy);

最佳答案

难道不是Linux上的鼠标滚轮只是按下另一个按钮?我现在无法为您进行测试,但是我记得在我的系统上,滚动鼠标滚轮只是生成了按钮事件。您可以通过运行显示X个输入事件的xev程序在系统上进行测试。

10-08 02:39