【自动化】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时需要注意:

  • 脚本运行时不要移动鼠标或触摸键盘,除非你想要中断它。
  • 测试脚本时,使用低速的操作和故障安全设置,直到你确认它按照预期工作。
相关推荐
is今夕15 分钟前
postcss.config.js 动态配置基准值
javascript·vue.js·postcss
青茶绿梅*218 分钟前
500字理透react的hook闭包问题
javascript·react.js·ecmascript
前端御书房28 分钟前
Pinia 3.0 正式发布:全面拥抱 Vue 3 生态,升级指南与实战教程
前端·javascript·vue.js
NoneCoder43 分钟前
JavaScript系列(84)--前端工程化概述
前端·javascript·状态模式
和舒貌1 小时前
Linux系统编程基础详解
linux·运维·服务器·基础
m0_748248022 小时前
爬虫自动化(DrissionPage)
爬虫·python·自动化
Ranye1232 小时前
从 JS 到 Dart:语法基础
javascript·flutter·dart
拉不动的猪3 小时前
刷刷题17(webpack)
前端·javascript·面试
Ama_tor3 小时前
网页制作06-html,css,javascript初认识のhtml如何建立超链接
javascript·css·html