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

7
我想模拟一个事件,在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,你找到解决办法了吗? - Irina S.
有人得到答案了吗? - RoyalBosS
2个回答

8

只需要删除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(),但鼠标只被点击了一小段时间,而不是应该一直按下去的整个过程。 - Irina S.
1
@jason-m 有点像,我最终意识到问题不在pyautogui上,而是我想要使用它的应用程序。我想在使用Window照片查看器打开的图片上画一些东西。但是,在那里它无法工作。对于其他应用程序(例如MS Paint),使用Alt提供的解决方案可以解决问题。 - Irina S.
这个对了,谢谢! - RoyalBosS

2
这可能会对您有所帮助:

这里有一些提示:

pyautogui.moveTo(1277, 127)

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

(持续时间以秒为单位)

最好在你的代码中附上一些解释,以帮助读者理解你的代码是做什么的,以及为什么/如何解决问题。 - Tomerikoo
2
我认为这很容易理解。 - nikhilbalwani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接