如何模拟鼠标移动
如何使用 C++ 模拟鼠标事件,使指针向左移动 500 像素,然后单击。我该怎么做这样的事情?
How can I simulate a mouse event causing the pointer to move 500 pixels to the left, then click using C++. How would I do something like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
下面是我手头上的一些修改过的 Win32 代码:
在使用每个
INPUT
缓冲区之前,您需要调用MouseSetup()
。Here's some modified Win32 code I had lying around:
You'll need to call
MouseSetup()
to eachINPUT
buffer before you use it.对于使用
Linux
的用户来说,这是一个使用Xlib
的解决方案:只需构建它,然后模拟 x ,y 处的点击即可:
即
Here is a solution using
Xlib
for those who useLinux
:Just Build it and then to simulate a click at x ,y do:
i.e.
使用
SendInput
生成您想要模拟的输入。来自 MSDN 文档:
Use
SendInput
to generate the input you want to simulate. From MSDN documentation:我从来没有使用 C++ 这样做过。不过,有一个名为 Robot 的 Java 类能够产生鼠标事件。我在 Java 1.4 版本上使用了它,但它仍然有效。我尝试了这个 在 Mac OS 中模拟物理鼠标移动的示例X。它可以在 MacOSX Lion 上与 Oracle Java 1.6.0_26 一起顺利运行。 Java 的优点是它独立于平台。
您仍然可以使用 JNI 将其与 C++ 绑定。
我希望它有帮助
I have never did this using C++. Nevertheless, there is a Java class called Robot which is able to produce mouse events. I used this back on Java version 1.4 but it does still work. I tried the example from this Simulate a physical mouse move in Mac OS X. It runs smoothly with Oracle Java 1.6.0_26 on MacOSX Lion. The good about Java is that it is platform independent.
You can still use JNI to bind it with C++.
I hope it helps
仅靠 C++ 无法做到这一点。它没有“鼠标”的概念,更不用说“点击”了。
您需要某种与您的窗口系统对话的库。例如,QT。然后就是搜索 API 并进行正确的 C++ 调用。
C++ alone can't do this. It has no concept of a "mouse", let alone a "click".
You need some sort of library which talks to your windowing system. For example, QT. Then it's a matter of searching through the API and making the right C++ calls.
使用 mouse_event 函数。
Use the mouse_event function.