如何在Python中控制鼠标?详细代码实现教程

2021年11月16日18:28:04 发表评论 1,107 次浏览

本文为你介绍用使用python控制电脑鼠标。挂钩事件、注册热键、模拟鼠标移动和点击等等。

如何在Python中控制鼠标?在代码中控制计算机鼠标是一项方便的任务,因为它有助于桌面自动化、制作有用的桌面代理等。在本教程中,你将学习如何在 Python 中控制鼠标。

Python控制鼠标示例介绍:我们将使用方便的mouse库,让我们安装它:

$ pip3 install mouse

该模块帮助我们完全控制鼠标,例如挂钩全局事件、注册热键、模拟鼠标移动和点击等等!

Python如何控制鼠标?首先,让我们看看如何模拟鼠标点击:

import mouse

# left click
mouse.click('left')

# right click
mouse.click('right')

# middle click
mouse.click('middle')

注意:建议在 Python 交互式 shell(例如 Jupyter notebook 或IPython )中单独运行这些语句。

如何在Python中控制鼠标?click()方法正如它的名字所暗示的那样,它发送一个带有给定按钮的点击,试试看!

其次,还可以获取鼠标的当前位置:

In [22]: mouse.get_position()
Out[22]: (646, 407)

你可以用鼠标拖动一些东西:

# drag from (0, 0) to (100, 100) relatively with a duration of 0.1s
mouse.drag(0, 0, 100, 100, absolute=False, duration=0.1)

Python控制鼠标示例解析 - 使用(0, 0)起始位置将absolute设置为False意味着它从当前位置拖动到更远的 100(在 x 和 y 中)。

在要拖到桌面上的文件上进行测试!

接下来,你还可以确定按钮是否被按下:

# whether the right button is clicked
In [25]: mouse.is_pressed("right")
Out[25]: False

你还可以移动鼠标:

# move 100 right & 100 down
mouse.move(100, 100, absolute=False, duration=0.2)

这将在 0.2 秒的持续时间内相对移动鼠标。

你还可以进行在事件发生时调用的回调,例如鼠标单击:

# make a listener when left button is clicked
mouse.on_click(lambda: print("Left Button clicked."))
# make a listener when right button is clicked
mouse.on_right_click(lambda: print("Right Button clicked."))

Python如何控制鼠标?上面的代码会在鼠标按钮被点击时进行简单的回调,这里我们只使用 lambda 函数进行演示,你可以随意使用任何函数来做任何你想做的事。

如果要删除监听器,可以调用unhook_all()删除所有监听器:

# remove the listeners when you want
mouse.unhook_all()

你还可以控制鼠标滚轮,让我们向下滚动:

# scroll down
mouse.wheel(-1)

向上滚动:

# scroll up
mouse.wheel(1)

Python控制鼠标示例 - 最后,你可以记录所有鼠标事件,然后重放它们:

# record until you click right
events = mouse.record()

如何在Python中控制鼠标?这将记录所有鼠标事件,直到按下右键。然后它返回一个记录的事件列表,让我们重放它们:

# replay these events
mouse.play(events[:-1])

我设置events[:-1]而不是所有事件的原因是我不想播放右键单击。

以下是你可以使用此模块实现的一些想法:

  • 让强化学习代理玩电子游戏。
  • 自动化无聊的桌面内容。
  • 多得多!

你可以将其与在 Python 中控制键盘相结合,让我们看看你可以用这些来构建什么!

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: