高响应时间 - 使用 pyautogui 以编程方式移动鼠标

问题描述 投票:0回答:3

在 Python 脚本中,

pyautogui.moveRel(b, a)
的响应时间目前为 0.1 秒。这是该功能的预定时间吗?如果是这样,有什么方法可以使用 python 或其他语言中的另一种技术来缩短响应时间?我的目标响应时间是0.01秒左右,也就是60HZ的速率。

python mouse mouselistener pyautogui
3个回答
2
投票

@mertyildiran 获得的结果是预期的,因为 PyAutoGUI 在操作之间有默认的 0.1 秒暂停作为failsafe

为了加快速度,您可以将暂停设置为较低的值,甚至为零,如下所示:

pyautogui.PAUSE = 0

0
投票

检查响应时间(以微秒为单位)的代码(0.01 秒 = 10000 微秒):

import pyautogui
import datetime

for x in range(0, 9):
    start = datetime.datetime.now()
    pyautogui.moveRel(None, 50)
    end = datetime.datetime.now()

    elapsed_time = end - start

    print elapsed_time.microseconds

输出:

269017
112927
113071
113061
112761
112561
113115
112107
112448

这意味着使用这个库和 Python 大约需要 0.1 秒。所以我的建议是使用更深层次的编程语言,比如 C++。

Windows中用C++模拟鼠标事件:https://stackoverflow.com/a/7492837/2104879

Linux下用C++模拟鼠标事件:https://stackoverflow.com/a/8791599/2104879


0
投票

您可以使用 _pause=False 作为 moveTo 和 moveRel 以及大多数其他 pyautogui 函数的参数来禁用暂停并使移动即时。

示例:

pyautogui.moveTo(x, y, _pause=False)
pyautogui.moveRel(x, y, _pause=False)
mouseDown(_pause=False)
© www.soinside.com 2019 - 2024. All rights reserved.