gpt4 book ai didi

c++ - 如何使用 Xlib 模拟拖动 Action ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:58 24 4
gpt4 key购买 nike

我有一个应用程序使用 Xlib 库在屏幕上模拟鼠标。

我使用 XQueryPointer 和 XWarpPointer 函数来模拟鼠标移动和点击。我的问题是我不能“拖动”一个元素(它是一个带有一些 block 的接口(interface),您可以在用 C++ 编写并在 Ubuntu 上启动的 Qt 应用程序中移动)。

我使用了这个摘录的很多部分:

Sending X11 click event doesn't work with some windows

这个功能对我有帮助吗?

::XGrabPointer(mDisplay, window, True,
ButtonPressMask |
ButtonReleaseMask |
PointerMotionMask |
FocusChangeMask |
EnterWindowMask |
LeaveWindowMask,
GrabModeAsync,
GrabModeAsync,
RootWindow(mDisplay, DefaultScreen(mDisplay)),
None,
CurrentTime);

你有什么想法吗?

提前谢谢你。

最佳答案

如果您不介意生成子进程,您可以轻松地使用 xdotool 来执行此操作,如下所示:

xdotool mousedown 1
sleep 0.5
xdotool mousemove_relative --sync 200 200
sleep 0.5
xdotool mouseup 1

http://www.semicomplete.com/projects/xdotool/

http://tuxradar.com/content/xdotool-script-your-mouse

source code to xdotool如果您想使用 XTest 库在 C 中自己执行此操作,这将是一个很好的起点。

关于c++ - 如何使用 Xlib 模拟拖动 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14218740/

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