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

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象