【自动化】PyoutuGUI操作键鼠

自动化之PyoutuGUI操作键鼠

文章目录

  • 自动化之PyoutuGUI操作键鼠
    •   👉引言💎
    • 一、初始化环境
    • 二、键盘鼠标事件
    • 三、消息框功能
    • 四、案例实战
        • 自动登录WPS
    • 五、问题解决

  👉引言💎

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。
热爱写作,愿意让自己成为更好的人…


在这里插入图片描述

铭记于心
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉

一、初始化环境

pip install PyUserInput
pip install pypiwin32
from pykeyboard import *
from pymouse import *
import win32api #win32gpi可以控制窗口高亮等
m=PyMouse()
k=PyKeyboard()
x_dim, y_dim = m.screen_size()

二、键盘鼠标事件

在这里插入图片描述

m.click(x, y, button, n) – 点击,想x,y坐标,button:1表示左键,2表示右键,n:默认1次,2双击
m.move(x, y) – 鼠标移动
m.screen_size() – 获取屏幕尺寸

k.type_string('abcdefg') --输入内容
k.press_key('a') --按a键
k.release_key('a') --松开a键
k.tap_key('a') --点击a键
k.tap_key('a', n=2, interval=5) --点击a键2次,每次间隔5秒
k.tap_key(k.function_keys[5]) --功能键F5
k.press_keys([k.alt_key, 'a']) --组合按键,试验不成功

截屏: 截取并保存屏幕快照:

screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')

识别图片: 找到屏幕上与指定图片匹配的部分,并返回其位置:

location = pyautogui.locateOnScreen('example.png')
print(location)

关于异常处理: PyAutoGUI的函数可能会抛出异常,例如找不到屏幕上的匹配项。可以使用try-except块来处理这些异常:

try:location = pyautogui.locateOnScreen('example.png')
except pyautogui.ImageNotFoundException:print("无法找到图像在屏幕上。")

为了防止PyAutoGUI脚本失控,可以启用故障安全功能。当迅速将鼠标移动到屏幕的左上角时,PyAutoGUI函数会抛出一个pyautogui.FailSafeException异常:

pyautogui.FAILSAFE = True

三、消息框功能

  • alert(text='', title='', button='OK')

    显示一个带有文本和一个确定按钮的简单消息框。返回单击的按钮的文本。

    在这里插入图片描述

  • `confirm(text=‘’, title=‘’, buttons=[‘OK’, ‘Cancel’]``

    显示带有确定和取消按钮的消息框。可以自定义按钮的数量和文本。返回单击的按钮的文本

    在这里插入图片描述

  • `prompt(text=‘’, title=‘’ , default=‘’)``

    显示带有文本输入和确定和取消按钮的消息框。返回输入的文本,如果单击取消,则返回无。

  • password(text='', title='', default='', mask='*')

    显示带有文本输入和确定和取消按钮的消息框。键入的字符显示为*。返回输入的文本,如果单击取消,则返回无。

    在这里插入图片描述

四、案例实战

自动登录WPS
import time
from pymouse import PyMouse
from pykeyboard import PyKeyboardUsername = "***"
Password = "***"def WPS():#创建PyMouse和PyKeyboard的实例,分别赋值给变量m和k,使我们可以调用这些对象来模拟鼠标和键盘操作。m = PyMouse()k = PyKeyboard()#使用time.sleep函数暂停程序4秒钟,这是为了确保所有的应用程序都已经完全加载,以便进行自动化操作。time.sleep(4)#调用m.click两次,模拟点击屏幕上的特定位置(x=670, y=380),这个位置应该对应于用户名输入框的位置。两次点击之间等待1秒钟。m.click(670, 380)time.sleep(1)m.click(670, 380)  # 输入用户名k.type_string(Username)time.sleep(1)m.click(670, 435)time.sleep(1) # 输入密码k.type_string(Password) #注意这里是无法输入中文的m.click(670, 520)  # 点击验证按钮time.sleep(3)m.click(670, 580)  # 登录if __name__ == "__main__":WPS()

五、问题解决

  • 解决中文输入问题
    在这里插入图片描述

使用PyAutoGUI时需要注意:

  • 脚本运行时不要移动鼠标或触摸键盘,除非你想要中断它。
  • 测试脚本时,使用低速的操作和故障安全设置,直到你确认它按照预期工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EF类和E/F类功率放大器(能量转换器)的波形推导和理想仿真--基于Matlab和ADS

EF类和E/F类功率放大器(能量转换器)的波形推导和理想仿真–基于Matlab和ADS 参考论文:Modeling and Analysis of Class EF and Class E/F Inverters With Series-Tuned Resonant Networks(2016) 这篇文章的思路和MTT的文章A Generalized Hi…

存储引擎的简介

简介: 1.在mysql存储引擎可以说就是指表的类型,可以称为表处理器,以表的形式存储。 2.他的功能就是接收上层传下来的指令,然后对表中的数据进行提取写入操作。 目的: 为了管理方便,我们把连接管理&#xf…

通过aop实现通用日志

操作日志的使用场景系统日志和操作日志的区别 系统日志:系统日志主要是为开发排查问题提供依据,一般打印在日志文件中;系统日志的可读性要求没那么高,日志中会包含代码的信息,比如在某个类的某一行打印了一个日志。 操作日志:主要是对某个对象进行新增操作或者修改操作…

mysql笔记:4. 数据类型

文章目录 整数类型浮点数类型和定点数类型日期类型和时间类型1. YEAR四位两位 2. DATE3. TIME冒号差异 4. DATETIME5. TIMESTAMP 字符串类型CHAR和VARCHAR类型TEXT类型 二进制类型BITBINARY和VARBINARYBLOB 复合数据类型ENUM类型SET类型 数据库中的表由多列字段构成&#xff0c…

如何在一个pycharm项目中创建jupyter notebook文件,并切换到conda环境中

1、第一步可以直接在pycharm项目中创建jupyter notebook文件 2、假若想要切换成pytorch环境做实验例子,会发现报这个错误 Jupyter server process exited with code 1 C:\Users\12430\.conda\envs\pytorch3.11\python.exe: No module named jupyter在这里&#xff…

Canvas笔记05:绘制文本,可视化图表中最常用

hello,我是贝格前端工场,最近在学习canvas,分享一些canvas的一些知识点笔记,本期分享canvas绘制文本的知识,欢迎老铁们一同学习,欢迎关注,如有前端项目可以私信贝格。 Canvas绘制文本是指使用H…

【粉丝福利第四期】:《低代码平台开发实践:基于React》(文末送书)

文章目录 前言一、React与低代码平台的结合优势二、基于React的低代码平台开发挑战三、基于React的低代码平台开发实践四、未来展望《低代码平台开发实践:基于React》五、粉丝福利 前言 随着数字化转型的深入,企业对应用开发的效率和灵活性要求越来越高…

PyTorch之完整的神经网络模型训练

简单的示例: 在PyTorch中,可以使用nn.Module类来定义神经网络模型。以下是一个示例的神经网络模型定义的代码: import torch import torch.nn as nnclass MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()# 定义神经…

运维打工人,兼职跑外卖的第二个周末

北京,晴,西南风1级。 前序 今天天气还行,赶紧起来,把衣服都洗洗,准备准备,去田老师吃饭早饭了。 一个甜饼、一个茶叶蛋、3元自助粥花费7.5。5个5挺吉利的。 跑外卖的意义 两个字减肥,记录刚入…

基于最小二乘递推算法的系统参数辨识matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于最小二乘递推算法的系统参数辨识。对系统的参数a1,b1,a2,b2分别进行估计,计算估计误差以及估计收敛曲线&#…

如何在Windows中对硬盘进行分区?这里有详细步骤

本文介绍如何在Windows11、10、8、7、Vista和XP中对硬盘进行分区 如果这个过程听起来比你想象的要复杂一点,不要担心,因为事实并非如此。在Windows中对硬盘进行分区一点也不难,通常只需要几分钟。以下是操作方法。 注意:这些说明适用于Windows 11、Windows 10、Windows 8…

蓝桥杯(3.9)

1210. 连号区间数 蓝桥杯暴力过80% import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[] res new int[n];int[] copy new int[n];for(int i0;i&…

腾讯云轻量应用服务器流量用完了怎么办?

腾讯云轻量服务器流量用完了怎么办?超额流量另外支付流量费,流量价格为0.8元/GB,会自动扣你的腾讯云余额,如果你的腾讯云账号余额不足,那么你的轻量应用服务器会面临停机,停机后外网无法访问,继…

关于mapper.xml的映射问题

org.apache.ibatis.binding.BindingException Invalidbound statement (not found)的解决方案和造成原因分析(超详细)_org.apache.ibatis.binding.bindingexception: invali-CSDN博客

js【详解】Promise

为什么需要使用 Promise ? 传统回调函数的代码层层嵌套,形成回调地狱,难以阅读和维护,为了解决回调地狱的问题,诞生了 Promise 什么是 Promise ? Promise 是一种异步编程的解决方案,本身是一个构…

自然语言处理之语言模型(LM)介绍

自然语言处理(Natural Language Processing,NLP)是人工智能(Artificial Intelligence,AI)的一个重要分支,它旨在使计算机能够理解、解释和生成人类语言。在自然语言处理中,语言模型&…

阿珊详解Vue Router的守卫机制

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【漏洞复现】Salia PLCC cPH2 远程命令执行漏洞(CVE-2023-46359)

0x01 漏洞概述 Salia PLCC cPH2 v1.87.0 及更早版本中存在一个操作系统命令注入漏洞,该漏洞可能允许未经身份验证的远程攻击者通过传递给连接检查功能的特制参数在系统上执行任意命令。 0x02 测绘语句 fofa:"Salia PLCC" 0x03 漏洞复现 ​…

2024 年 3 月 每日分享

文章目录 3 月 9 日3 月 8 日3 月 7 日3 月 6 日3 月 5 日3 月 4 日3 月 3 日3 月 2 日3 月 1 日 每日分享栏目 发现一些不错的资源,你有好的发现可以评论留言或私信我。 3 月 9 日 Linux 101 本书由中国科学技术大学 Linux 用户协会的数名优秀成员协力编写。用于…

video视频播放

1.列表页面 <template><div><ul><li class"item" v-for"(item,index) in list" :key"index" click"turnPlay(item.videoUrl)"><img :src"item.img" alt""><div class"btn…