• 模块
  • 安装依赖
  • 原理
  • 测试环境
  • 代码
    • 获取屏幕大小
    • 移动鼠标位置
    • 获取鼠标实时位置
    • 获取图像位置&鼠标点击
    • 键盘输入
    • 组合键输入
    • 按键名称

模块

pyautogui
该模块包含了很多模拟操作鼠标,键盘动作的功能
time.sleep(2)
程序睡2s,让你有时间切换到自动化操作的页面

安装依赖

pip install pyperclip
pip install pyautogui
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple (这个安装失败自行百度)
pip install pillow

原理

  1. 获得操作点(也就是x,y轴坐标,持续时间)
  2. 进行模拟人工操作

测试环境

windows 10
python 3.10 (其他版本不知道会不会出问题)

代码

下面每个代码块都是独立的

获取屏幕大小

import time
import pyautogui
#---------------------
#   获取屏幕大小
#---------------------
#电脑屏幕大小
size = pyautogui.size()
print(f"screen_size:{size}")
# 鼠标当前位置
mouse_pos = pyautogui.position()
print(f'mouse_pos:{mouse_pos}')
# 判断位置点是否在屏幕内
print(pyautogui.onScreen(100,100))

结果


移动鼠标位置

#---------------------
#   移动鼠标位置
#---------------------
# 等待手动切换页面时间
time.sleep(2)
# 自动移动鼠标到(100,100)的位置,1s内完成
pyautogui.moveTo(100,100,duration=1)
# 把鼠标移动到画面中央,周期0.5s(这里的size与上面代码块有关)
pyautogui.moveTo(size.width/2,size.height/2,duration=0.5)
# 鼠标根据当前位置相对移动,周期1s
pyautogui.moveRel(100,0,duration=1)

结果

不好展示,就是在当前页面下,鼠标1s内移到(100,100)的位置,然后又移到屏幕中点,最后再从中央往右移动100像素(这个不知道是不是像素)


获取鼠标实时位置

#---------------------
#   获取鼠标实时位置
#---------------------
"""
如果照片识别不顶用,可以先用下面的代码,获取指定操作的位置
"""
last_pos = pyautogui.position()
try:while True:#新位置new_pos = pyautogui.position()if last_pos != new_pos:print(new_pos)last_pos = new_pos
# ctrl+c中止
except KeyboardInterrupt:print('\nExit.')

结果
移动鼠标,控制台都会实时打印当前位置


获取图像位置&鼠标点击

#---------------
#   鼠标点击
#---------------
"""
获取图像位置
"""
# 等待手动切换页面时间
time.sleep(2)
# 取得指定图像的位置,r''表示斜杠不转义
help_pos = pyautogui.locateOnScreen(r'E:\picture\btn_help.png')
print(help_pos) #Box(left=645, top=5, width=83, height=32)
# 取得指定图像的中心位置
help_center_pos = pyautogui.center(help_pos)
print(help_center_pos) #Point(x=686, y=21)
"""
进行点击操作
"""
# 方法一(可以使用help_center_pos对象进行定位)
# 移动鼠标
# pyautogui.moveTo(help_center_pos,duration=1)
#点击
# pyautogui.click()# 方法二(只能使用help_pos对象进行定位)
# 这种可以减少代码量
# 直接调用click函数(按1次左键,间隔1s后再进行其他操作
#这里+10为了鼠标靠近图像里面,因为默认获取的是图像左上角位置)
pyautogui.click(help_pos.left+10,help_pos.top+10,1,1,button='left')

结果
要抓取的图片btn_help.png

原来鼠标在红圈的地方

程序运行之后,鼠标自动划到指定的图像那(btn_help.png)


键盘输入

# ----------------
#   键盘输入
# ----------------
time.sleep(2)
# 点击一次编辑器
pyautogui.click(button='left')
# 直接输入【I like Python】
pyautogui.typewrite('I like Python.')
# 逐字输入内容,间隔时间0.25s
pyautogui.typewrite('\nI like Python too.',0.25)
# 按照键盘布局按内容
pyautogui.typewrite(['enter','g','o','o','d','left','left','left','backspace','G','end','.'],0.25)

结果

  1. 运行程序并手动打开记事本(2s之内必须打开不然没效果,而且鼠标要在编辑器里面)

    2.可以看到自动写下我们想写的东西,而且如果你运行该程序会看到,第二行和第三行的字母好像是一个一个敲上去的

组合键输入

#----------------
#   组合键输入
#----------------
"""
模拟人工使用快捷键
"""
time.sleep(2)
# 每个动作间隔0.5s
pyautogui.PAUSE = 0.5
# 按一次f5
pyautogui.press('f5')
# 按一次esc
pyautogui.press('esc')
# 按住ctrl+end 光标移到最后一行
pyautogui.keyDown('ctrl')
pyautogui.press('end')
# 松开ctrl键
pyautogui.keyUp('ctrl')
# 按住ctrl+a 内容全选
pyautogui.keyDown('ctrl')
pyautogui.press('a')
pyautogui.press('c')
pyautogui.keyUp('ctrl')
# 光标移到最后一个字符
pyautogui.hotkey('ctrl','end')
# 输入两个空行
pyautogui.typewrite('\n\n')
# 粘贴
pyautogui.hotkey('ctrl','v')

结果

  1. 运行前

    2.运行后

按键名称

不知道就在下面找你想要的键盘名称

# pyautogui.KEYBOARD_KEYS数组中就是press(),keyDown(),keyUp()和hotkey()函数
#可以输入的按键名称
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.',
'/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@',
'[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace', 'browserback',
'browserfavorites', 'browserforward', 'browserhome', 'browserrefresh', 'browsersearch',
'browserstop', 'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal',
'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f21', 'f22',
'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'final', 'fn', 'hanguel', 'hangul',
'hanja', 'help', 'home', 'insert', 'junja', 'kana', 'kanji', 'launchapp1', 'launchapp2',
'launchmail', 'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9',
'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup', 'playpause', 'prevtrack', 'print',
'printscreen', 'prntscrn', 'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select',
'separator', 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen', 'command',
'option', 'optionleft', 'optionright']

pyautoGUI自动化脚本相关推荐

  1. pyautogui自动化操作脚本

    之前针对加密视频播放编写了一个自动答题的脚本(使用易语言 大漠插件所编写的) 还有商户自动话术回复的(也是易语言+大漠插件) 还有使用autojs所编写的一个针对安卓端钉钉的自动签到 还有一个某宝领喵 ...

  2. Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本

    Python 在windows上跑图色脚本?简单又好玩,自己编写一个自动化脚本 大家好 我又来开新坑了,如图这次准备用python弄个简单脚本(根据图色判断进行键鼠操作) 1.老规矩 先安排运行环境 ...

  3. PyAutoGUI—自动化操作工具(1)基础入门

    作为当下的程序猿,未来的攻城狮,怎么能忍受超过三次的重复工作!(这里指打游戏每天刷图) 于是乎,我毅然决定,要用 python 写一个自动化脚本解放我的双手!(然后去刷知乎和哔站) 冷知识:图形用户界 ...

  4. 分享十个好用到爆的Python自动化脚本

    在这个自动化时代,我们有很多重复无聊的工作要做.想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松.那么在本文中,我将向您介绍10个Python自动化脚本,以使你的工作更加自动 ...

  5. 自动化脚本——涉及弹窗,自动登录,截图,获取用户权限,打包程序等

    2020暑期XX银行实习-一个自动化脚本 实习背景 主功能介绍 获取用户权限和禁用鼠标键盘 对话框 使用谷歌浏览器chrome自动登录网页 chromedriver 模拟鼠标点击以及键盘输入 截图 所 ...

  6. Python自动化脚本——涉及弹窗,自动登录,截图,获取用户权限,打包程序等

    2020暑期XX银行实习-一个自动化脚本 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高 ...

  7. python自动化办公脚本下载-python自动化脚本

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 运维自动化,已经成为运维必不可少的一部分,下面附上自己写的监控nginx_stat ...

  8. python_selenium之第一个自动化脚本

    python_selenium之第一个自动化脚本 上一节介绍了xpath的使用,接下来完成第一个自动化脚本 一.步骤: 1. 这里使用火狐浏览器,首先打开火狐浏览器 2. 使浏览器窗口最大化 3.输入 ...

  9. lua自动化脚本关于文本读写和特殊不可见字符转换的处理

    lua自动化脚本关于文本读写和特殊不可见字符转换的处理 因为lua在读写文本中可能还会碰到一些比较变态的不可见字符,%s," "这些转换不了,所以需要做特殊的处理. 参考菜鸟教程的 ...

最新文章

  1. 一种基于三代PacBio测序数据的补洞方法
  2. zabbix添加端口监控
  3. centos安装包选择--liveCD、liveDVD、bin-DVD、netinstall和minimal
  4. VTK:PolyData之DeletePoint
  5. mysql 中间表的好处_Mysql中使用中间表提高统计查询速度
  6. 信息学奥赛一本通(1173:阶乘和)
  7. Tomcat源码分析——server.xml文件的加载
  8. class循环获取 Undefined var str = '';
  9. linux命令学习_实验楼(一)
  10. 现代语音信号处理之时域分析
  11. java打字小游戏源码_java实现快速打字游戏
  12. Spring Boot使用jasypt处理加密问题
  13. 2018桂林J - Stone Game(博弈)
  14. 自然语言处理入门学习笔记3:词向量
  15. Android 11 AppOps setOnOpNotedCallback实现分析
  16. 3.1 jmeter 响应断言
  17. 使用PHP破解防盗链图片的一个简单方法
  18. C语言通讯录的制作【数据结构】【课程设计】
  19. 扎拉赞恩 服务器 微信群,wow怀旧服扎拉赞恩任务怎么做-wow怀旧服扎拉赞恩的头颅在哪里-地点位置_牛游戏网...
  20. 【利用Nginx实现白名单功能】

热门文章

  1. 【职业人的自我修炼十项原则】
  2. 【第三方登录】第三方登录 Part1 —— QQ登录(2016-09最新版)
  3. http服务器究竟做了什么(一)
  4. Qt获取图片色值(提供源码)
  5. 最好用的 20 款数据可视化工具
  6. Google Earth上划定矢量范围并导出为KMZ文件
  7. android 语音识别文字
  8. 一套MES系统需要多少钱?如何使生产管理系统标准化?
  9. Cesium 相机视角控制
  10. 一份Yann LeCun等16个顶级数据科学家给新人的建议