Python直接控制鼠標鍵盤模塊 pyautogui

參考文章:http://www.chenxm.cc/post/547...
安裝html

pip install pyautogui

官網:git

http://pyautogui.readthedocs.io/en/latest/

github:github

https://github.com/asweigart/pyautogui

介紹:
PyAutoGUI能夠模擬移動鼠標,單擊鼠標,用鼠標拖動,按鍵,按住鍵,還能夠按鍵盤熱鍵組合。
基礎操做函數

>>> import pyautogui
# 獲取屏幕尺寸
>>> screenWidth, screenHeight = pyautogui.size()
# 獲取當前座標位置
>>> currentMouseX, currentMouseY = pyautogui.position()
# 鼠標移動到座標爲100,150的位置
>>> pyautogui.moveTo(100, 150)
# 鼠標左擊
>>> pyautogui.click()
# 鼠標移動10個像素
>>> pyautogui.moveRel(None, 10)  # move mouse 10 pixels down
# 鼠標雙擊
>>> pyautogui.doubleClick()
>>> pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.easeInOutQuad)  # use tweening/easing function to move mouse over 2 seconds.
# 鍵盤輸入Hello world! 間隔爲0.25秒
>>> pyautogui.typewrite('Hello world!', interval=0.25)  # type with quarter-second pause in between each key
# 按鍵 esc
>>> pyautogui.press('esc')
# shift按下
>>> pyautogui.keyDown('shift')
# 按鍵左方向鍵
>>> pyautogui.press(['left', 'left', 'left', 'left', 'left', 'left'])
# shift彈起
>>> pyautogui.keyUp('shift')
# 組合件 ctrl +c
>>> pyautogui.hotkey('ctrl', 'c')

保護措施:
PyAutoGUI函數增長延遲爲2.5秒:post

import pyautogui
pyautogui.PAUSE = 2.5

當pyautogui.FAILSAFE = True時,若是把鼠標光標在屏幕左上角,PyAutoGUI函數就會產生pyautogui.FailSafeException異常。ui

import pyautogui
pyautogui.FAILSAFE = True

鼠標操做:
移動code

import pyautogui
width, hight = pyautogui.size()
pyautogui.moveTo(width/2, hight/2) # 基本移動
pyautogui.moveTo(200, 200, duration=2) # 移動過程持續2s完成
pyautogui.moveTo(None, 100) # X方向不變,Y方向移動到100
pyautogui.moveRel(-40, 500) # 相對位置移動

拖拽
拖拽的意思是:按下鼠標鍵並拖動鼠標。PyAutoGUI提供了兩個函數:dragTo() 和 dragRel()。它的參數和moveTo() 和 moveRel() 同樣。htm

點擊+向下拖動

pyautogui.click(941, 34, button='left')
pyautogui.dragRel(0, 100, button='left', duration=5)

點擊事件

click()函數就是讓鼠標點擊,默認是單擊左鍵,參數能夠設置:
pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left')

其中,button屬性能夠設置成left,middle和right。圖片

pyautogui.doubleClick():鼠標雙擊,其實就是執行兩次click()函數。
pyautogui.rightClick():右擊
pyautogui.middleClick():中擊
pyautogui.tripleClick(
pyautogui.click(300, 400, button='right') # 包含了move的點擊,右鍵
pyautogui.click(clicks=2, interval=0.25) # 雙擊,間隔0.25s

雙擊左鍵

pyautogui.click(clicks=2)

兩次單擊之間停留0.25秒

pyautogui.click(clicks=2, interval=0.25)

三擊右鍵

pyautogui.click(button='right', clicks=2, interval=0.25)

鼠標按下和鬆開兩個事件能夠分開處理:

pyautogui.mouseDown(x=moveToX, y=moveToY, button='left')
pyautogui.mouseUp(x=moveToX, y=moveToY, button='left')

滾輪
它只接受一個整數。若是值爲正往上滾,值爲負往下滾。

pyautogui.scroll(-10)

鍵盤操做
輸入文字

pyautogui.click(100, 200)
pyautogui.typewrite('hello world!')

若是是中文鍵是複製

精確控制鍵盤
按鍵的按下和釋放 和鼠標按鍵很是相似。

keyDown():按下某個鍵
keyUp():鬆開某個鍵
press():一次完整的擊鍵,前面兩個函數的組合。
pyautogui.press('shift') # 切換輸入法的中英文
pyautogui.press(['#', ' ']) # press 能夠對單個字符或者列表進行操做
pyautogui.press(['c', 'h', 'e', 'n'])
pyautogui.press(['x', 'i','n'])
pyautogui.press(['m', 'i', 'n','g'])
pyautogui.press(' ')
# 陳新明

組合鍵hotKey

pyautogui.hotkey('shift', 'a') # 能夠使用組合鍵,等同於如下代碼
'''
pyautogui.keyDown('shift')
pyautogui.keyDown('a')
pyautogui.keyUp('shift')
pyautogui.keyUp('a')

'''
截圖

import pyautogui
im1 = pyautogui.screenshot()
im2 = pyautogui.screenshot('my_screenshot.png')
screenshot()須要花費100毫秒

若是你不須要截取整個屏幕,還有一個可選的region參數。你能夠把截取區域的左上角XY座標值和寬度、高度傳入截取。

im = pyautogui.screenshot(region=(0, 0, 300 ,400))

讀取截圖的圖片

import pyautogui
pyautogui.locateOnScreen('my_screenshot.png')

原文:http://www.chenxm.cc/post/633...

相關文章
相關標籤/搜索