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

  • 脚本运行时不要移动鼠标或触摸键盘,除非你想要中断它。
  • 测试脚本时,使用低速的操作和故障安全设置,直到你确认它按照预期工作。
相关推荐
胡斌附体14 分钟前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
愚润求学23 分钟前
【Linux】自旋锁和读写锁
linux·运维
大锦终24 分钟前
【Linux】常用基本指令
linux·运维·服务器·centos
知北游天1 小时前
Linux:多线程---深入互斥&&浅谈同步
linux·运维·服务器
Gappsong8741 小时前
【Linux学习】Linux安装并配置Redis
java·linux·运维·网络安全
Mintopia1 小时前
四叉树:二维空间的 “智能分区管理员”
前端·javascript·计算机图形学
慌糖1 小时前
RabbitMQ:消息队列的轻量级王者
开发语言·javascript·ecmascript
try2find1 小时前
移动conda虚拟环境的安装目录
linux·运维·conda
Mintopia1 小时前
Three.js 深度冲突:当像素在 Z 轴上玩起 "挤地铁" 游戏
前端·javascript·three.js
MrSkye2 小时前
🔥JavaScript 入门必知:代码如何运行、变量提升与 let/const🔥
前端·javascript·面试