【自动化】PyoutuGUI操作键鼠

自动化之PyoutuGUI操作键鼠

文章目录

👉引言💎

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

...

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

一、初始化环境

bash 复制代码
pip install PyUserInput
pip install pypiwin32
bash 复制代码
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() -- 获取屏幕尺寸

bash 复制代码
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']) --组合按键,试验不成功

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

bash 复制代码
screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')

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

bash 复制代码
location = pyautogui.locateOnScreen('example.png')
print(location)

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

bash 复制代码
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
python 复制代码
import time
from pymouse import PyMouse
from pykeyboard import PyKeyboard

Username = "***"
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时需要注意:

  • 脚本运行时不要移动鼠标或触摸键盘,除非你想要中断它。
  • 测试脚本时,使用低速的操作和故障安全设置,直到你确认它按照预期工作。
相关推荐
烦躁的大鼻嘎29 分钟前
【Linux】ELF与动静态库的“暗黑兵法”:程序是如何跑起来的?
linux·运维·服务器·c++·vscode·ubuntu
API_technology42 分钟前
阿里巴巴 1688 数据接口开发指南:构建自动化商品详情采集系统
大数据·运维·数据挖掘·自动化
卓律涤1 小时前
【找工作系列①】【大四毕业】【复习】巩固JavaScript,了解ES6。
开发语言·前端·javascript·笔记·程序人生·职场和发展·es6
努力学习的小廉1 小时前
深入了解linux系统—— 基础IO(下)
linux·运维·服务器
Ten peaches1 小时前
Selenium-Java版(环境安装)
java·前端·selenium·自动化
Enti7c1 小时前
BOM知识点
javascript
心.c2 小时前
vue3大事件项目
前端·javascript·vue.js
斯文by累2 小时前
解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式
运维·docker·容器
不许哈哈哈2 小时前
自动化点击工具
运维·python·自动化
无敌小胜3 小时前
使用教程:8x16模拟开关阵列可级联XY脚双向导通自动化接线
运维·自动化