####一、安装

pip3 install pyobjc-core
复制代码
pip3 install pyobjc
复制代码
pip3 install pyautogui
复制代码

####二、使用

导入

import pyautogui
复制代码
#获取当前鼠标的坐标
pyautogui.position()

#屏幕的宽高
pyautogui.size()

#移动到某个位置,duration是持续时间,如果给参数None,则代表此坐标位置不变
pyautogui.moveTo(x, y, duration=num_seconds) 
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad)     # 启动慢,后面快
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)    # 启动快,后面慢
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad)  # 开始和结束快,中间慢
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce)   # 弹跳
>>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic)  # 橡皮筋

#同上,但是它是相对当前位置而言的,如果持续为0,就会瞬间移动过去
pyautogui.moveRel(xOffset, yOffset, duration=num_seconds)

#拖拽到目标位置,button是对应的动作,左拖拽或者右拖拽
pyautogui.dragTo(x, y, button='left')
#相对当前位置拖拽
pyautogui.dragRel(xOffset, yOffset, duration=num_seconds)

#鼠标点击
pyautogui.click(x=100, y=200)
>>> pyautogui.rightClick(x=moveToX, y=moveToY)
>>> pyautogui.middleClick(x=moveToX, y=moveToY)
>>> pyautogui.doubleClick(x=moveToX, y=moveToY)
>>> pyautogui.tripleClick(x=moveToX, y=moveToY)

#clicks : 指定点击的次数
#interval : 指定点击的间隔
#button : 指定点击的动作
pyautogui.click(clicks=2)
pyautogui.click(clicks=2, interval=0.25)
pyautogui.click(button='right', clicks=3, interval=0.25)

#鼠标滚动到某个位置
pyautogui.scroll(amount_to_scroll, x=moveToX, y=moveToY)

#单独的按钮向下和向上事件可以分开调用
>>> pyautogui.mouseDown(x=moveToX, y=moveToY, button='left')
>>> pyautogui.mouseUp(x=moveToX, y=moveToY, button='left')

#控制键盘自动填入文本到当前有焦点的位置,interval是每次填写一个字符的间隔
pyautogui.typewrite('Hello world!\n', interval=secs_between_keys)

#可以传入一个数据按钮key,他会识别不同的key做出不同的处理,不然下面有一个"left", 他就会在输入完abc后,进行左移,后面的也这样依次执行下去
pyautogui.typewrite(['a', 'b', 'c', 'left', 'backspace', 'enter', 'f1'], interval=secs_between_keys)
#所有的键位定义在 = pyautogui.KEYBOARD_KEYS , 参数必须用[]括号包起来的,才会进入这个数组中判断

#热键执行,可以执行两个热键的组合
pyautogui.hotkey('ctrl', 'c')

#单独某个键按下或者松开
pyautogui.keyDown(key_name)
pyautogui.keyUp(key_name)

#弹窗

#简单的弹窗
pyautogui.alert('This displays some text with an OK button.')
#带有一个ok按钮和cancel按钮的弹窗
pyautogui.confirm('This displays text and has an OK and Cancel button.')
#带有两个按钮,并且还有一个可输入的编辑框,接收的值可以获取他输入的值
pyautogui.prompt('This lets the user type in a string and press OK.')
#可以指定button的text
confirm(text='', title='', buttons=['OK', 'Cancel'])


#对整个屏幕进行截图,返回PIL的image类型,可以直接image.show()查看图片
image = pyautogui.screenshot()

#截屏后保存到文件中
pyautogui.screenshot('foo.png')
#截图可以控制区域,0,0的坐标点,截取宽500,高500的图片
pyautogui.screenshot(region=(0,0,500,500))

#根据图片是识别这张图片在当前屏幕上的哪个位置,返回坐标
pyautogui.locateOnScreen('looksLikeThis.png')

#返回xy坐标是否在屏幕上
pyautogui.onScreen(0, 0)

#按下某个键
pyautogui.press('f11')
#也可以传入数组
pyautogui.press(['left', 'left', 'left'])
复制代码