【自动化】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…

如何在一个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…

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

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

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 漏洞复现 ​…

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…

套接字编程 --- 一

目录 1. 预备知识 1.1. 端口号 1.2. 认识TCP协议 1.3. 认识UDP协议 1.4. 网络字节序 2. socket 2.1. socket 常见系统调用 2.1.1. socket 系统调用 2.1.2. bind 系统调用 2.1.3. recvfrom 系统调用 2.1.4. sendto系统调用 2.3. 其他相关接口 2.3.1. bzero 2.3.2…

力扣:17. 电话号码的字母组合

力扣&#xff1a;17. 电话号码的字母组合 描述 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输…

Linux——文件重定向

目录 前言 一、重定向 二、重定向的运用 三、dup2 四、命令行中的重定向 五、为什么要有标准错误 前言 在之前我们学习了文件标识符&#xff0c;直到close可以使用文件标识符进行关闭&#xff0c;但是当我们关闭1号&#xff08;stdout&#xff09;时&#xff0c;无法往显…

00在linux环境下搭建stm32开发环境

文章目录 前言一、环境搭建1.arm-none-eabi-gcc2.openocd 三、创建stm32标准库工程1.创建工程目录2.修改stm32_flash.ld文件3.写makefile文件4.修改core_cm3.c5.写main函数并下载到板子上 最后 前言 我在那天终于说服自己将系统换成了linux系统了&#xff0c;当换成了linux系统…

UE5.1_使用技巧(常更)

UE5.1_使用技巧&#xff08;常更&#xff09; 1. 清除所有断点 运行时忘记蓝图中的断点可能会出现运行错误的可能&#xff0c;务必运行是排除一切断点&#xff0c;逐个排查也是办法&#xff0c;但是在事件函数多的情况下会很复杂且慢节奏&#xff0c;学会一次性清除所有很有必…