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

作为当下的程序猿,未来的攻城狮,怎么能忍受超过三次的重复工作!(这里指打游戏每天刷图)

于是乎,我毅然决定,要用 python 写一个自动化脚本解放我的双手!(然后去刷知乎和哔站)

冷知识:图形用户界面Graphical User Interface,简称 GUI,又称图形用户接口

网上找了一圈,没看到特别完整的文档资料,所以建议直接看官方文档

本文先进行简单介绍,后面会进行详解。

官方文档:https://pyautogui.readthedocs.io/en/latest/

git 源码地址:https://github.com/asweigart/pyautogui

快速入门参考哔站视频:【Python】PyAutoGUI - 注意了,该写个游戏辅助了!

文章目录

    • PyAutoGUI简介
    • 快速上手
      • 基础信息
      • 鼠标移动
      • 实时获取鼠标位置
      • 鼠标移动加点击
      • 键盘输入
      • 组合键的处理
    • 参考


PyAutoGUI简介

拟人的自动化操作工具,可以控制键盘和鼠标,快速摆脱重复劳动,实现幸福人生。

PyAutoGUI 有几个功能:

  • 移动鼠标并在其他应用程序的窗口中单击
  • 向应用程序发送击键(例如,填写表单)。
  • 截取屏幕截图,并给出一个图像(例如,按钮或复选框的图像),然后在屏幕上找到它。
  • 找到应用程序的窗口,然后移动、调整大小、最大化、最小化或关闭它(目前仅限 Windows)。
  • 显示警报和消息框。

快速上手

安装:

pip install PyAutoGUI

基础信息

import pyautogui
# 屏幕大小 Size(width=1920, height=1080) 显然这是屏幕分辨率
size = pyautogui.size()
print(size)
# 鼠标位置
mouse_pos = pyautogui.position()
print(mouse_pos)
# 判断点是否则屏幕内
print(pyautogui.onScreen(100, 100))

鼠标移动

import pyautogui

size = pyautogui.size()
# 把鼠标移动到(10,10)的位置,周期1秒 绝对移动
pyautogui.moveTo(10,10, duration=1)
# 把鼠标移动到画面中央,周期0.5秒
pyautogui.moveTo(size.width / 2, size.height / 2, duration=0.5)
# 鼠标相对最近的点移动,周期1秒
pyautogui.moveRel(100,100 , duration=1)

实时获取鼠标位置

import pyautogui

# 上一次的位置
last_pos = pyautogui.position()
try:
    while True:
        # 新位置
        new_pos = pyautogui.position()
        if last_pos != new_pos:
            print(new_pos)
            last_pos = new_pos
except KeyboardInterrupt:
    print('\nExit.')

鼠标移动加点击

import pyautogui
import time

# 系统准备时间 用于切换页面
time.sleep(0.5)
# 取得帮助菜单位置
help_pos = pyautogui.locateOnScreen('btn_help.png')
print(help_pos)
goto_pos = pyautogui.center(help_pos)
# 移动鼠标
pyautogui.moveTo(goto_pos, duration=0.5)
# 点击
pyautogui.click()
# 再移动鼠标
pyautogui.moveRel(0, 600, duration=0.5)
# 再点击
pyautogui.click()

键盘输入

import pyautogui
import time
# 系统准备时间
time.sleep(2)
# 点击一次鼠标停留位置
pyautogui.click(button="left")
# 输入【I like Python.】
pyautogui.typewrite('I like Python.')
# 输入回车,然后继续输入内容
pyautogui.typewrite('\nI like Python too.', 0.25)
# 输入【good】,然后将头文字改为大写G,最后在行尾写个句号
pyautogui.typewrite(['enter', 'g', 'o', 'o', 'd', 'left', 'left',
                     'left', 'backspace', 'G', 'end', '.'], 0.25)

组合键的处理

import pyautogui
import time

time.sleep(2)
# 每个动作间隔0.5秒钟
pyautogui.PAUSE = 0.5

# 打入三行内容
pyautogui.typewrite('\nhello')
pyautogui.typewrite('\nhello')
pyautogui.typewrite('\nhello')

# 按下Ctrl键
pyautogui.keyDown('ctrl')
# 按下a键,拷贝
pyautogui.press('a')
# 按下c键,复制
pyautogui.press('c')
# 松开Ctrl键
pyautogui.keyUp('ctrl')
# 鼠标点击记事本下方
pyautogui.click(800, 800)
# 输入两个空行
pyautogui.typewrite('\n\n')
# 粘贴
pyautogui.hotkey('ctrl', 'v')

参考

PyAutoGUI - 拟人的自动化操作工具

你可能感兴趣的:(有趣好玩,自动化,python)