如何模拟鼠标点击和拖动?

Posted

技术标签:

【中文标题】如何模拟鼠标点击和拖动?【英文标题】:How to simulate a mouse click and drag? 【发布时间】:2019-12-10 14:15:45 【问题描述】:

我想模拟一个事件,我在 Windows 桌面上左键单击,我稍微拖动鼠标以创建一个选择框到另一个点,然后在没有选择框的情况下在该点按住左键一段时间消失。

问题是,我不能让他保留选择框,每当他到达另一点时,选择框就会消失,表明按钮已被释放。

我尝试使用 PyAutoGUI 在 Python 中实现。我尝试了几种方法来做到这一点,但仍然没有成功。有什么我缺少的功能吗?

import time
import pyautogui

time.sleep(3)

while True:
    pyautogui.moveTo(1080, 380)
    pyautogui.mouseDown(button='left')
    pyautogui.dragTo(917, 564, 1, button='left')
    time.sleep(10)
    pyautogui.mouseUp(button='left')
    time.sleep(2)

【问题讨论】:

@Erik Lopes 你找到解决方案了吗? 有人知道答案了吗? 【参考方案1】:

只需删除 2 行代码并将 dragTo() 更改为 moveTo() 似乎就可以满足您的要求:

import time
import pyautogui

time.sleep(3)

while True:
    pyautogui.moveTo(1080, 380)
    pyautogui.mouseDown(button='left')
    pyautogui.moveTo(917, 564, 1)
    time.sleep(10)

【讨论】:

我有类似的任务,但无法使用@Alt 提供的解决方案来解决。我也用dragTo()drag() 进行了尝试,但是鼠标只被点击了一小会儿,而不是应该一直向下点击。 @jason-m 有点,我终于意识到问题不在于 pyautogui,而是我想使用它的应用程序。我想在用 Window Photo Viewer 打开的图片上画一些东西。在那里,它没有用。对于其他应用程序(例如 MS Paint),它与 Alt 提供的解决方案一起使用。 这很有效,谢谢!【参考方案2】:

这可能会对你有所帮助:

pyautogui.moveTo(1277, 127)

pyautogui.dragTo(1277, 225, button='left', duration=5)

(持续时间以秒为单位)

【讨论】:

最好在你的代码中附上一些解释,帮助读者理解你的代码做了什么以及为什么/如何解决问题 我认为这是不言自明的

以上是关于如何模拟鼠标点击和拖动?的主要内容,如果未能解决你的问题,请参考以下文章

模拟 QWebEngineView 的鼠标点击

安卓游戏模拟器电脑版怎么设置按键

delphi 后台模拟鼠标点击

如何在WPF中模拟鼠标点击

以编程方式模拟鼠标拖动

4 鼠标键盘操作