gpt4 book ai didi

linux - x11 - 在不移动指针的情况下发送鼠标点击

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:35 26 4
gpt4 key购买 nike

假设我知道窗口 ID。然后我可以通过这种方式将鼠标单击发送到该窗口(这是一个全屏窗口,因此根坐标和窗口坐标相同):

Display *display = XOpenDisplay(NULL);
if(display == NULL)
{
std::cout<<"Cannot open display"<<std::endl;
exit(EXIT_FAILURE);
}
XWarpPointer(display, None, RootWindow(display, DefaultScreen(display)), 0, 0, 0, 0, 300, 200);
XEvent event;

memset(&event, 0x00, sizeof(event));

event.type = ButtonPress;
event.xbutton.button = button;
event.xbutton.same_screen = True;
event.xbutton.root = RootWindow(display, DefaultScreen(display));
event.xbutton.window = 75497473;
event.xbutton.subwindow = 0;
event.xbutton.x_root = 300;
event.xbutton.y_root = 200;
event.xbutton.x = 300;
event.xbutton.y = 200;
event.xbutton.state = 0;

XSendEvent(display, PointerWindow, True, ButtonPressMask, &event) == 0)
XFlush(display);
usleep(100000);

event.type = ButtonRelease;
event.xbutton.state = 0x100;

XSendEvent(display, PointerWindow, True, ButtonReleaseMask, &event) == 0)
XFlush(display);

如果我删除该代码将不起作用:

XWarpPointer(display, None, RootWindow(display, DefaultScreen(display)), 0, 0, 0, 0, 300, 200);

我不使用 XQueryPointer,所以我不明白哪里出了问题。是否可以在不使用 XWarpPointer 的情况下发送鼠标点击?

最佳答案

使用XTestFakeMotionEvent来自 XTEST扩展

关于linux - x11 - 在不移动指针的情况下发送鼠标点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27984220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com