自动化之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时需要注意:
- 脚本运行时不要移动鼠标或触摸键盘,除非你想要中断它。
- 测试脚本时,使用低速的操作和故障安全设置,直到你确认它按照预期工作。