import pyautogui
# 使用之前先导入库
import time
# 导入时间库,用来制作延迟\等待时间,后面有讲
import pyperclip
# 复制粘贴的库,方便输入中文,后面有讲
screenWidth, screenHeight = pyautogui.size()
# 获取主显示器的大小,用命令行运行后会把结果输出到命令行,当然可以简写:pyautogui.size()
currentMouseX, currentMouseY = pyautogui.position()
# 获取鼠标的坐标位置(x,y),同样以返回值形式显示
# 简写:pyautogui.position()
pyautogui.moveTo(100, 150)
# 把鼠标移动到100,150坐标(x=100,y=150)
pyautogui.moveTo(500, 500, duration=2)
# 把鼠标移到500,500坐标,移动到那里需要2秒(看上去像是缓慢移动)
pyautogui.moveTo(500, 500, 2)
# 上面那行代码的简写版
pyautogui.moveTo(None, 500)
# x坐标保持不动,y坐标为500,同理y也可以这样写
pyautogui.dragTo(100, 200, button='left')
# 按住左键拖动到100,200
# 左键为left,右键为right,中键为middle
pyautogui.drag(100, 200, button='left')
# 以当前坐标拖动,拖动到距离坐标为100,200的坐标
pyautogui.click()
pyautogui.doubleClick() # 双击鼠标
pyautogui.tripleClick() # 点3下鼠标
pyautogui.middleClick() # 在中间点击鼠标,一般配合找图来用(后面有写)
# 点击鼠标
pyautogui.click(100, 150)
# 在坐标为100,150的位置点击1下,也可以这么写:pyautogui.click(x=100, y=200)
pyautogui.click(100, 150, 3)
# 在坐标为100,150的位置点击3下
pyautogui.click(clicks=2, interval=0.25)
# 点击两次,每次间隔0.25秒
pyautogui.move(400, 0)
# 鼠标移动到当前位置往右400个像素的地方
pyautogui.mouseDown()
# 按下鼠标右键(不松开)
pyautogui.mouseUp()
# 抬起鼠标右键(松开了)
# mouseUp()括号里也可以添加参数的,如button='right'改成松开左键
pyautogui.click('button.png')
# 在屏幕上找到与button.png相似的像素,并点击它
# 自动找图很方便,比如如果你要点击一个总是乱动的按钮
# 可以把按钮截图下来,然后让pyautogui来点击
# 这个找图的功能识别不是很快,为750毫秒左右才能找到
pyautogui.middleClick('button.png')
# 点击这个图片的中间位置
# 同理也可以搭配双击\3击来找图
# 截图推荐使用snipaste,还可以看坐标
# snipaste:www.snipaste.com
# ======================================
pyautogui.write('Hello world!', interval=0.25)
# 输入Hello world!,但是每打一个字母隔0.25秒打另一个字母
pyautogui.press('esc')
# 按一下esc键,其他键包括space,enter,shift等
with pyautogui.hold('shift'):
pyautogui.press(['left', 'left', 'left', 'left'])
# 按住shift键不放
# 按左方向键4次
# 然后就会自动松开shift键
pyautogui.hotkey('ctrl', 'c')
# 按ctrl+c热键组合,还可以是任何组合,如ctrl+v,del+down等
pyautogui.hotkey('ctrl', 'shift', 'esc')
# 组合热键可以是3个或者更多,比如108个
pyautogui.keyDown('shift')
# 按住shift键
pyautogui.keyUp('shift')
# 松开shift键
pyautogui.press(['left', 'left', 'left'])
# 按下3次键盘左键,可以简写为pyautogui.press('left', 3)
# 或者写为pyautogui.press('left', presses=3)
# 这些是有效的键:
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',
')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`',
'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace',
'browserback', 'browserfavorites', 'browserforward', 'browserhome',
'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear',
'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete',
'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20',
'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9',
'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja',
'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail',
'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6',
'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn',
'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn',
'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator',
'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen',
'command', 'option', 'optionleft', 'optionright']
# ======================================
time.sleep(3)
# 等待3秒后再进行下一步操作
# 可以搭配来写:
pyautogui.moveTo(725, 360)
time.sleep(3)
pyautogui.middleClick()
# 把鼠标移到725,360后等3秒,再点击中间一下
def wait():
time.sleep(3)
return
# 定义一个函数,作用是等待3秒
# 我们可以把之前的搭配改成这样:
pyautogui.moveTo(725, 360)
wait()
pyautogui.middleClick()
# 效果一样
# ======================================
pyperclip.copy('https://www.baidu.com/')
# 复制https://www.baidu.com/到剪贴板
pyperclip.paste()
# 使用ctrl+v粘贴
# 也可以使用pyautogui.hotkey('ctrl','v')来粘贴
# 这个copy的好处就是可以输入中文等各种语言文字
# 默认pyautogui的键盘输入只能按shift,然后一个一个字母打来输入中文
已经大致了解了,下面是演示阶段:
# 一些连起来的操作
# 这里的cptl()是函数调用,后面有讲
pyautogui.hotkey('ctrl','4')
pyautogui.tripleClick(60, 1010)
cptl()
pyautogui.click(37, 243)
pyautogui.press("f2")
pyautogui.hotkey('ctrl','v')
pyautogui.press("backspace")
pyautogui.press("3")
pyautogui.press("enter")
# 视频3
pyautogui.click(37, 343)
pyautogui.press("f2")
pyautogui.press("1")
pyautogui.press("enter")
# 图片1
pyautogui.click(37, 443)
pyautogui.press("f2")
pyautogui.press("2")
pyautogui.press("enter")
# 图片2
pyautogui.click(37, 543)
pyautogui.press("f2")
pyautogui.press("3")
pyautogui.press("enter")
# 图片3
函数的使用:
# 一个用于调用的函数
# 在其他类里面可以这样引用:
# from time import wait5, wait2, wait
# 这个类的名称为time.py,跟import time没关系,要分清
import time
def wait():
time.sleep(3)
return
def wait2():
time.sleep(2)
return
def wait5():
time.sleep(5)
return
# 另一个函数,调用时使用cptl()即可,然后就会执行一遍函数内的代码
def cptl():
pyautogui.hotkey('ctrl','c')
wait2()
pyautogui.hotkey('ctrl','c')
wait2()
pyautogui.hotkey('win','d')
return
最后补充一下办公可能需要的:
# 删除桌面后缀为1.mp4和2.mp4结尾的文件
# 这个只检查桌面有没有,不会遍历到子文件夹
import os
import glob
path =r'C:\Users\Administrator\Desktop'
for infile in glob.glob(os.path.join(path, '*1.mp4')):
os.remove(infile)
for infile in glob.glob(os.path.join(path, '*2.mp4')):
os.remove(infile)