办公自动化神器pyautogui全能操作鼠标键盘
## pyautogui
https://pyautogui.readthedocs.io/en/latest/index.html
pyautogui可以代替鼠标键盘的输入,由计算机程序自动控制电脑鼠标、键盘,实现办公自动化。安装方法是:
`pip install pyautogui`
调用库`import pyautogui`
### 基础函数
将整个屏幕看做平面直角坐标系,左上角是坐标原点,水平向右是x轴,垂直向下是y轴。注意:x和y是有方向的,例如,有些函数x的值取负数相对于从右往左水平移动,以此类推。
pyautogui.position() # 获取鼠标当前的坐标
pyautogui.size() # 获取当前屏幕的大小(相对于横纵坐标的范围)
pyautogui.onScreen(x, y) # 判断x,y是否在屏幕范围内。
### 安全保护
pyautogui.PAUSE = 2.5 # 程序每次调用pyatuogui的时间间隔,防止程序操作过快。
pyautogui.FAILSAFE = True #当程序检测到鼠标位于左上角时,中止程序。在程序出现错误的时候,人为移动鼠标至左上角以中止程序。
### 鼠标
pyautogui.moveTo(x, y, duration=num_seconds) # 移动鼠标到坐标(x,y),duration参数控制移动的总时长/持续时间,下同
pyautogui.moveRel(xOffset, yOffset, duration=num_seconds) # 按照x、y的参数,从当前位置移动鼠标
pyautogui.dragTo(x, y, duration=num_seconds) # 按住并拖动鼠标到坐标(x,y)
pyautogui.dragRel(xOffset, yOffset, duration=num_seconds) # 按相对位置拖动鼠标,同上
pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left') #鼠标移动到(x,y),点几次,每次点击间隔时间,点那个键(左、右、中)
pyautogui.rightClick(x=moveToX, y=moveToY) #字面含义,下同
pyautogui.middleClick(x=moveToX, y=moveToY)
pyautogui.doubleClick(x=moveToX, y=moveToY)
pyautogui.tripleClick(x=moveToX, y=moveToY)
pyautogui.scroll(amount_to_scroll, x=moveToX, y=moveToY) #鼠标移动到(x,y)之后滚动几次鼠标的滚轮
pyautogui.mouseDown(x=moveToX, y=moveToY, button='left') #字面含义,按下鼠标某个键,下同
pyautogui.mouseUp(x=moveToX, y=moveToY, button='left')
### 键盘
pyautogui.typewrite('Hello world!\n', interval=secs_between_keys) # 键盘输入文字,仅限英文。每次敲击的间隔。
pyautogui.typewrite(['a', 'b', 'c', 'left', 'backspace', 'enter', 'f1'], interval=secs_between_keys) #可以按列表输入
pyautogui.KEYBOARD_KEYS #显示所有可以敲击的键盘键,具体如下
['\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']
pyautogui.hotkey('ctrl', 'c') # 快捷键 ,等价于ctrl+c ,下同
pyautogui.hotkey('ctrl', 'v') # ctrl+v
pyautogui.keyDown(key_name) #按下某个键,下同
pyautogui.keyUp(key_name)
### 消息提示框
pyautogui.alert('This displays some text with an OK button.') #显示提示消息
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.') #显示一个由用户填信息的框并返回输入的内容
### 截图
pyautogui.screenshot() # 返回屏幕截图(全屏)
pyautogui.screenshot('foo.png') # 返回截图并保存
pyautogui.locateOnScreen('looksLikeThis.png') # 返回屏幕上与某个图片相同的区域的位置,分别是:左、上、宽、高
pyautogui.locateCenterOnScreen('looksLikeThis.png') #返回屏幕上与某个图片相同的区域的位置的中心点坐标(用于点击)