如何在使用win32api时减慢鼠标速度

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

我试图让鼠标缓慢地穿过屏幕,但找不到减慢鼠标速度的方法。有人在 11 个月前发布了一个问题的解决方案,但他们发布的解决方案对我不起作用,或者我使用了错误的方法。

可能的解决方案:如何使用win32api(mouseeventf_move)更改鼠标移动速度

def farm():
    #win32api.SetCursorPos((0,1440))
    win32api.mou0se_event(win32con.MOUSEEVENTF_MOVE, int(100) * 2, int(100) * 2, 0, 0)

    time.sleep(0.5)

    win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, int(1) * 5, int(3) * 7, 0, 0)
    #win32api.SetCursorPos((2560,1000))

到目前为止,我已经尝试了上面代码片段中的代码。未注释的代码是我在另一篇文章中尝试使用的尝试解决方案。这会将鼠标沿前两个数字(乘以平滑因子)的 x 和 y 方向移动。我还没有找到用这种方法减慢速度的方法。如果有一种方法可以在使用 SetCursorPos 时做到这一点,那就太好了,但如果没有,我可以理解为什么。

编辑:删除了图像并添加了一个片段,不知道不上传图像是我的错。

python pywin32 win32com
1个回答
0
投票

我做了很多挖掘,不幸的是,我找不到让 win32api 工作的方法。

我建议使用 pyautogui 而不是 win32api。 Pyautogui 是一个 GUI 自动化模块,可以控制鼠标和键盘,还可以使用 Pillow 在屏幕上查找图像并截取屏幕截图。

Pyautogui 具有

moveTo()
move()
功能,可以解决您的问题。例如:

import pyautogui

def farm():
    pyautogui.moveTo(100, 100, duration=2) #moves to (100, 100) in 2 secs
    #or if you just want to move the mouse, without specifying a position:
    pyautogui.move(None, 10, duration=2) #moves 10 pixels in 2 secs

只需调整持续时间参数即可控制鼠标移动所需的时间。我已经使用 pyautogui 一段时间了,事实证明它非常有用。我从 https://pypi.org/PyAutoGUI/ 获得此信息,您可以在其中找到完整文档的链接。

如果 pyautogui 不适合你,那么我建议查看 pynput,并且有很多关于它的 stackoverflow 帖子(我没有使用 pynput 的经验)。

© www.soinside.com 2019 - 2024. All rights reserved.