Python编程让繁琐的工作自动化(9)-用GUI自动化控制键盘和鼠标

2024-05-06 20:08

本文主要是介绍Python编程让繁琐的工作自动化(9)-用GUI自动化控制键盘和鼠标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

计算机上自动化任务的终极工具就是写程序直接控制键盘和鼠标,这些程序可以控制其他应用,向他们发送虚拟的击键和鼠标点击,就像你自己坐在计算机前与它交互一样,这种技术被称为“图形用户界面自动化”。
GUI自动化的速度非常快,可能导致其他程序跟不上,很可能引起失控。有几种方法可以防止或者回复GUI自动化问题。

  1. 注销,快捷键ctrl-alt-del。
  2. 暂停和自动防故障装置。pyautogui.PAUSE变量设置暂停的秒数,非PyAutoGUI指令不会停顿。另一种是自动防故障功能。将鼠标移动到屏幕左上角会产生pyautogui.FailSafeException异常,可以用try和except语句处理这个异常,也可以让异常引起程序崩溃。也可以设置pyautogui.FAILSAFE = False禁止这项功能。
#控制鼠标移动,计算机屏幕坐标:左上角为0,0
import pyautogui
width, height = pyautogui.size()//返回屏幕分辨率
#移动鼠标
pyautogui.moveTo(100, 100, duration=0.25)//duration表示所需秒数,如果不指定,默认为0,表示立即移动
#相对移动
pyautogui.moveRel(100, 0 , duration=0.25)
#获取鼠标位置
pyautogui.position()
#控制鼠标交互
#点击鼠标
pyautogui.click()//获取焦点
pyautogui.click(100, 150, button='left')//关键字为left,middle,right
#拖动鼠标, 可以在画图程序中运行测试
pyautogui.dragTo(100, 100, duration=0.25)
pyautogui.dragRel(100, 100, duration=0.25)
#滚动鼠标
pyautogui.scroll(200)//滚动多少单位,最好自己测试一下实际距离,正数向上滚动,负数向下滚动
#获取屏幕快照,linux需要安装scrot才能使用pyautogui的屏幕快照功能
im = pyautogui.screenshot()//Image对象
im.getpixel((0,0))//(0,0)处的像素值, 返回RGB元组
#分析屏幕快照
pyautogui.pixelMatchesColor(50, 200, (130, 135, 144))//查看屏幕上指定坐标的像素与指定的颜色是否匹配
#如果不知道实现应该点哪里,可以使用图像识别
#要识别的图像为参数,返回屏幕上首次发现该图像时左边的x,y,宽度和高度元组。
#要完全匹配,差一个像素也不行
x, y, width, height = pyautogui.locateOnScreen('submit.png')
#如果屏幕上有多处,函数会返回一个Generator对象,可以将其传给list
list(pyautogui.locateAllOnScreen('submit.png'))
#获取区域中心,然后点击x, y = pyautogui.center((x,y,width,height))
pyautogui.click((x, y))
#控制键盘,按键之前记得先获取焦点
pyautogui.click();pyautogui.typewrite("hello world")
#传递按键列表
pyautogui.typewrite(['a','esc','shiftleft','tab','pause','enter'])
#按下和释放键盘,按下shift,按下4并释放4,释放shift
pyautogui.keydown('shift');pyautogui.press('4');pyautogui.keyup('shift')
#typewrite适合打字符串,press适合打单个字符
#热键组合
pyautogui.keydown('ctrl');pyautogui.keydown('c')
pyautogui.keyup('c');pyautogui.keyup('ctrl')
#一种更简单的方式是hotkey函数
pyautogui.hotkey('ctrl', 'c')

使用场景

可以自动填表,或者是网页游戏的自动任务,只要是重复性的点鼠标键盘的事都能做

这篇关于Python编程让繁琐的工作自动化(9)-用GUI自动化控制键盘和鼠标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965250

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre