辦公自動化神器pyautogui全能操作鼠標(biāo)鍵盤
## pyautogui
https://pyautogui.readthedocs.io/en/latest/index.html
pyautogui可以代替鼠標(biāo)鍵盤的輸入,由計(jì)算機(jī)程序自動控制電腦鼠標(biāo)、鍵盤,實(shí)現(xiàn)辦公自動化。安裝方法是:
`pip install pyautogui`
調(diào)用庫`import pyautogui`
### 基礎(chǔ)函數(shù)
將整個(gè)屏幕看做平面直角坐標(biāo)系,左上角是坐標(biāo)原點(diǎn),水平向右是x軸,垂直向下是y軸。注意:x和y是有方向的,例如,有些函數(shù)x的值取負(fù)數(shù)相對于從右往左水平移動,以此類推。
pyautogui.position()? # 獲取鼠標(biāo)當(dāng)前的坐標(biāo)
?pyautogui.size()? # 獲取當(dāng)前屏幕的大小(相對于橫縱坐標(biāo)的范圍)
pyautogui.onScreen(x, y)? # 判斷x,y是否在屏幕范圍內(nèi)。
### 安全保護(hù)
pyautogui.PAUSE = 2.5 # 程序每次調(diào)用pyatuogui的時(shí)間間隔,防止程序操作過快。
pyautogui.FAILSAFE = True #當(dāng)程序檢測到鼠標(biāo)位于左上角時(shí),中止程序。在程序出現(xiàn)錯誤的時(shí)候,人為移動鼠標(biāo)至左上角以中止程序。
### 鼠標(biāo)
pyautogui.moveTo(x, y, duration=num_seconds)? # 移動鼠標(biāo)到坐標(biāo)(x,y),duration參數(shù)控制移動的總時(shí)長/持續(xù)時(shí)間,下同
pyautogui.moveRel(xOffset, yOffset, duration=num_seconds)? # 按照x、y的參數(shù),從當(dāng)前位置移動鼠標(biāo)
pyautogui.dragTo(x, y, duration=num_seconds)? # 按住并拖動鼠標(biāo)到坐標(biāo)(x,y)
pyautogui.dragRel(xOffset, yOffset, duration=num_seconds)? # 按相對位置拖動鼠標(biāo),同上
pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left') #鼠標(biāo)移動到(x,y),點(diǎn)幾次,每次點(diǎn)擊間隔時(shí)間,點(diǎn)那個(gè)鍵(左、右、中)
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) #鼠標(biāo)移動到(x,y)之后滾動幾次鼠標(biāo)的滾輪
pyautogui.mouseDown(x=moveToX, y=moveToY, button='left')? #字面含義,按下鼠標(biāo)某個(gè)鍵,下同
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')? # 快捷鍵 ,等價(jià)于ctrl+c ,下同
pyautogui.hotkey('ctrl', 'v')? # ctrl+v
pyautogui.keyDown(key_name) #按下某個(gè)鍵,下同
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.') #顯示一個(gè)由用戶點(diǎn)擊確認(rèn)或取消的消息框,并返回點(diǎn)擊項(xiàng)
pyautogui.prompt('This lets the user type in a string and press OK.') #顯示一個(gè)由用戶填信息的框并返回輸入的內(nèi)容
### 截圖
pyautogui.screenshot()? # 返回屏幕截圖(全屏)
pyautogui.screenshot('foo.png')? # 返回截圖并保存
pyautogui.locateOnScreen('looksLikeThis.png')? # 返回屏幕上與某個(gè)圖片相同的區(qū)域的位置,分別是:左、上、寬、高
pyautogui.locateCenterOnScreen('looksLikeThis.png')? #返回屏幕上與某個(gè)圖片相同的區(qū)域的位置的中心點(diǎn)坐標(biāo)(用于點(diǎn)擊)