python通过pyautogui库来控制鼠标和键盘

这篇具有很好参考价值的文章主要介绍了python通过pyautogui库来控制鼠标和键盘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

PyAutoGUI是一个纯Python的GUI自动化工具,通过它可以用程序自动控制鼠标和键盘操作。它支持Windows, MacOS和Linux。
安装:

pip install pyautogui

基本用法看代码,非常简单易用。

import pyautogui
pyautogui.click(100, 100)
pyautogui.moveTo(100, 150)
pyautogui.moveRel(0, 10)  # 向下移动10个像素
pyautogui.dragTo(100, 150)
pyautogui.dragRel(0, 10)  # 向下拖动10个像素

运行脚本的时候,MacOS会提示你打开系统偏好控制,要求允许运行脚本的程序控制电脑,允许即可。

1. 关于屏幕和鼠标位置

先看一下屏幕坐标系:
python通过pyautogui库来控制鼠标和键盘

import pyautogui
# 自动防故障功能,将鼠标移到屏幕的左上角(坐标为(0,0))
# 以此来抛出failSafeException异常。
pyautogui.FAILSAFE = True

# 判断(x,y)是否在屏幕上
x, y = 50, 100
pyautogui.onScreen(x, y)
# 获取屏幕的宽度和高度
width, height = pyautogui.size()
print(f"屏幕宽度为{width},高度为{height}")
currentMouseX, currentMouseY = pyautogui.position() 
# 鼠标当前位置
print(f"鼠标当前位置为({currentMouseX},{currentMouseY})")

2. 鼠标移动、拖拽、点击、滚动和运动

import pyautogui
# 鼠标移动到(50,80),duration为持续时间,默认最小值为0.1秒,本例为0.5秒,设定值低于0.1会立即到达目标位置。
pyautogui.moveTo(50, 80, duration=0.5)

# 从当前位置向上/下/左/右移动10个像素
pyautogui.moveRel(10, 0) # 向右
pyautogui.moveRel(0, 10) # 向下
pyautogui.moveRel(-10, 0) # 向左
pyautogui.moveRel(0, -10) # 向上

# 拖放鼠标
# 按住鼠标左键,把鼠标拖拽到(50, 80)位置
pyautogui.dragTo(50, 80, button='left')
# 按住鼠标右键,用2秒钟把鼠标拖拽到(100, 200)位置
pyautogui.dragTo(100, 200, 2, button='right')
# 按住鼠标左键,用0.5秒钟把鼠标向上拖拽100个像素
pyautogui.dragRel(0, -100, duration=0.5)

# 点击鼠标
# pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left')
# button属性可以设置成left,middle和right,默认是left。

# 鼠标在当前位置单击左键
pyautogui.click() 
# 在坐标(50, 80)处点击左键2次,点击时间间隔0.5S
pyautogui.click(50, 80, 2, 0.5, button='left')
# 先移动到(50, 80),移动过程耗时1秒,然后单击左键
pyautogui.click(x=50, y=80, duration=1) 

# 鼠标在当前位置双击左键
pyautogui.doubleClick()
# 鼠标在(50,80)位置双击左键
pyautogui.doubleClick(x=100, y=150, button="left")
 
# 鼠标当前位置三击左键
pyautogui.tripleClick() 

# 鼠标键按下和松开(click()实际上是mouseDown()和mouseUp()的组合)
# 按下鼠标左键不放
pyautogui.mouseDown() 
# 松开鼠标左键
pyautogui.mouseUp()
# 按下鼠标右键不放
pyautogui.mouseDown(button='right') 
# 移动到(100, 200)位置,再松开鼠标右键
pyautogui.mouseUp(button='right', x=50, y=100) 
 
# 滚动鼠标
# pyautogui.scroll(clicks=amount_to_scroll, x=moveToX, y=moveToY)
# 向上滚动5格
pyautogui.scroll(5) 
# 向下滚动5格
pyautogui.scroll(-5) 
# 鼠标移动到(200,600),然后向上滚动10格
pyautogui.scroll(10, 200, 600)
 
# 缓动/渐变函数可以改变光标移动过程的速度和方向。通常鼠标是匀速直线运动,这里是线性缓动/渐变函数。
# 逐渐加速
pyautogui.moveTo(600, 600, 2, pyautogui.easeInQuad)
# 逐渐减速
pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)
# 开始和结束都快,中间比较慢
pyautogui.moveTo(600, 600, 2, pyautogui.easeInOutQuad)
# 徘徊前进
pyautogui.moveTo(100, 100, 5, pyautogui.easeInBounce)
# 大幅度徘徊前进,甚至超过起点和终点
pyautogui.moveTo(600, 600, 2, pyautogui.easeInElastic)

3. 使用键盘

# 键盘立即输出"Hello world!"
pyautogui.write('Hello world!')

# 键盘输出"Hello world!",每个字符输出时间间隔0.25S                 
pyautogui.write('Hello world!', interval=0.25)

pyautogui.press('enter')  # 按下 回车键
pyautogui.press('f1')     # 按下 F1键
pyautogui.press('left')   # 按下 左箭头

# 连续按下三次左箭头可以有如下两种方式:
pyautogui.press(['left', 'left', 'left'])
pyautogui.press('left', presses=3)

# press()实际上是keyDown()和keyUp()的组合
# 按"shift+left"三次
pyautogui.keyDown('shift')  # hold down the shift key
pyautogui.press('left')     # press the left arrow key
pyautogui.press('left')     # press the left arrow key
pyautogui.press('left')     # press the left arrow key
pyautogui.keyUp('shift')    # release the shift key

# hold()函数
# 按"shift+left"三次的hold()用法
with pyautogui.hold('shift'):
        pyautogui.press(['left', 'left', 'left'])

# hotkey()组合键
# 正序依次按下按键,然后逆序依次松开,例如“粘贴(ctrl+v)”
pyautogui.hotkey('ctrl', 'v')
# 相当于
pyautogui.keyDown('ctrl')
pyautogui.keyDown('v')
pyautogui.keyUp('v')
pyautogui.keyUp('ctrl')

完整键盘参数看这里:KEYBOARD_KEYS

4. 消息框

一共有四种类型,用法比较简单,请参照下面的例子:

pyautogui.alert(text='这是一个警告消息框', title='警告消息', button='OK')
pyautogui.confirm(text='这是一个确认消息框', title='确认', buttons=['OK', 'Cancel'])
pyautogui.prompt(text='这是一个提示消息框', title='提示' , default='请输入地址')
pyautogui.password(text='请输入密码', title='密码', default='', mask='*')

5. 屏幕截图

屏幕截图相关方法依赖Pillow模块。MacOS使用系统自带的screencapture命令;Linux使用scrot命令,需要通过sudo apt-get install scrot安装。

# 全屏截图(1080p大概耗时100ms)
im1 = pyautogui.screenshot()
im2 = pyautogui.screenshot('my_screenshot.png')
# 区域截图(提供左上、右下两个点坐标即可)
im = pyautogui.screenshot(region=(0,0, 300, 400))

# 获取某个点的RGB值,可以有如下两种方法:
# 1. 先截图,然后使用getpixel()方法
im = pyautogui.screenshot()
rgb = im.getpixel((300, 400))
print(rgb) #返回(30, 30, 30, 255)
# 2. 直接使用pixel()方法,是上面两个方法的组合
pix = pyautogui.pixel(300, 400)
print(pix) # 返回 RGB(red=30, green=30, blue=30)

# 验证某个像素的颜色
pyautogui.pixelMatchesColor(100, 200, (130, 135, 144))

6. 图像识别定位

# 找到一个图像并在它的中间位置点击鼠标
# confidence置信度可选,需要opencv支持
import pyautogui
import cv2
# 在屏幕上进行一个区域截图
img = pyautogui.screenshot('my_screenshot.png',region=(5, 10, 100, 100))
# 在屏幕上查找这个截图,置信度0.85
imglocation = pyautogui.locateOnScreen('my_screenshot.png', confidence=0.85)
# 屏幕打印应该返回imlocation: Box(left=5, top=8, width=100, height=100)
print('imlocation:',imlocation) 
# 获取找到的图像中心位置坐标
imgcenterpoint = pyautogui.center(imglocation)
# 鼠标点击图像中心位置(坐标使用(imgcenterpoint[0],imgcenterpoint[1]也可以))
pyautogui.click(imgcenterpoint.x, imgcenterpoint.y) 

参考资料:
Welcome to PyAutoGUI’s documentation! — PyAutoGUI documentation文章来源地址https://www.toymoban.com/news/detail-493919.html

到了这里,关于python通过pyautogui库来控制鼠标和键盘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python的pyautogui库(鼠标,键盘操作篇)

    图片操作篇可以观看https://blog.csdn.net/m0_61741706/article/details/126898616 pyautogui库可以模仿人去点击输出和键盘,相比selenium库,pyautogui库更方便,更便捷 下载就用pip直接下载,后者用清华源下载  出现这样就是下载成功 之后引入库,并判断电脑屏幕的分辨率 接下来是控制鼠标移

    2024年02月12日
    浏览(62)
  • Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

    🚀🚀🚀学会控制鼠标和键盘是实现自动化的捷径!🚀🚀🚀 pynput是第三方库,所以在使用pynput之前需要下载pynput包。 下载方式1: 在终端输入 pip install pynput 下载包 下载方式2: 进入pypi官网:https://pypi.org➡️搜索 pynput ➡️选择版本➡️点击pip install pynput 下载方式3: 点击

    2023年04月09日
    浏览(44)
  • PyAutoGUI Python 库,可以用于自动化鼠标和键盘的输入

    PyAutoGUI 是一个 Python 库,可以用于自动化鼠标和键盘的输入。它可以模拟人类的鼠标和键盘操作,例如单击、双击、拖动、按键、释放键等。PyAutoGUI 还提供了一些其他功能,例如屏幕截图和图像识别等。 以下是几个 PyAutoGUI 的典型案例和代码: 这些示例只是 PyAutoGUI 的一小部

    2024年02月10日
    浏览(54)
  • python操作windows桌面实现鼠标、键盘操作,python之pyautogui库文档详解

    PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,Linux)。 源码地址: https://github.com/asweigart/pyautogui 官方文档: https://github.com/asweigart/pyautogui/blob/master/docs/simplified-chinese.ipynb PyAutoGUI可以模拟鼠标的移动、点击、拖

    2024年02月04日
    浏览(53)
  • python+pyautogui—PC端自动化(二)键盘鼠标及对话框操作

    目录 鼠标操作 获取鼠标所在位置坐标 获取鼠标所在位置的RGB值 鼠标点击 鼠标按下和释放 鼠标移动 鼠标拖拽 滚轮滚动 键盘操作 输入英文字符 普通按键操作press 按下与抬起 组合键hotkey 持续按键hold 弹出对话框 alert confirm prompt password 获取鼠标所在位置坐标 获取鼠标所在位

    2024年02月12日
    浏览(42)
  • Unity 通过键盘鼠标控制物体移动、旋转、缩放的方法

    在Unity中,使用键盘ADWS键控制物体移动,通过鼠标左键控制物体旋转,鼠标中键控制物体缩放是再常见不过的方法。 方法如下:  效果如下:Unity 通过键盘鼠标控制物体移动、旋转、缩放_哔哩哔哩_bilibili

    2024年02月03日
    浏览(50)
  • 使用Barrier共享鼠标键盘,通过macos控制ubuntu系统

    之前文章写过如何使用barrrier通过windows系统控制ubuntu系统,该文章将详细介绍如何使用barrier通过macos系统控制ubuntu系统 macOS版本barrier链接 *注意,如果之前安装错误导致进到隐私安全界面中还存在barrier图标,需要手动删除后再添加一次barrier 命令如下: 至此macOS的barrier设置就

    2024年04月15日
    浏览(42)
  • 【UE5 智慧城市系列】5-通过鼠标键盘控制摄像机

    通过鼠标WASD键控制摄像机前后左右移动,鼠标滚轮控制弹簧臂长度的修改,鼠标中键控制摄像机旋转。 1. 首先创建一个游戏模式,这里命名为“BP_GameMode” 2. 再创建一个玩家控制器,这里命名为“BP_PlayerController” 3. 新建一个玩家控制的Pawn,这里命名为“BP_CameraPawn” 4. 打开

    2024年02月09日
    浏览(61)
  • python编程控制键盘鼠标

    1.安装Pywin32 下载完成后直接运行。 2. 模拟按键      keybd_event(bVk, bScan, dwFlags, dwExtraInfo)       第一个参数:虚拟键码(键盘键码对照表见附录);       第二个参数:硬件扫描码,一般设置为0即可;       第三个参数:函数操作的一个标志位,如果值为KEYEVENTF_EXTENDEDKEY则

    2024年02月08日
    浏览(38)
  • python 如何控制鼠标键盘

    你可以使用Python的第三方库pyautogui来控制鼠标和键盘。pyautogui库是一个跨平台的GUI自动化库,可以模拟鼠标和键盘操作,以及截屏、获取窗口句柄等功能。 下面是一些常用的鼠标和键盘控制示例: 鼠标移动到指定位置 鼠标点击

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包