pyautogui入門學習之鼠標鍵盤操作

1 安裝

pip install pyautogui

2 學習使用

2.1 加載模塊

import pyautogui

2.2 獲取信息類

電腦屏幕的左上角是位置(0,0),向右X座標增加,向下Y座標增加

# 獲取屏幕尺寸
screenWidth, screenHeight = pyautogui.size()

# 獲取鼠標當前位置
currentMouseX, currentMouseY = pyautogui.position()

onScreen()函數來檢查XY座標是否在屏幕上,如果在屏幕上返回True

In [1]: import pyautogui

In [2]: pyautogui.onScreen(0, 0)
Out[2]: True

In [3]: pyautogui.onScreen(0, -1)
Out[3]: False

2.3 進行操作類

2.3.1 鼠標

知識點:

import pyautogui

# 函數將鼠標立即移動到屏幕的指定位置:x, y爲座標, duration指定所需秒數
pyautogui.moveTo(x=None, y=None, duration=0.0)

# 函數相對於當前的位置移動鼠標
pyautogui.moveRel(xOffset=None, yOffset=None, duration=0.0)

# 在相應位置點擊鼠標, clicks爲點擊次數, interval爲時間間隔, button屬性可以有:left\middle\right
pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button="left")

# 按下鼠標按鍵
pyautogui.mouseDown(x=None, y=None, button="left", duration=0.0)

# 釋放鼠標按鍵
pyautogui.mouseUp(x=None, y=None, button="left", duration=0.0)

# 執行雙擊鼠標左鍵
pyautogui.doubleClick(x=None, y=None, interval=0.0, button="left", duration=0.0)

# 執行雙擊右鍵
pyautogui.rightClick(x=None, y=None, interval=0.0, duration=0.0)

# 執行雙擊中鍵
pyautogui.middleClick(x=None, y=None, interval=0.0, duration=0.0)

# 將鼠標拖動到一個新的位置
pyautogui.dragTo(x=None, y=None, duration=0.0, button="left")

# 將鼠標拖動到相對當前位置的位置
pyautogui.dragRel(xOffset=0, yOffset=0, duration=0.0, button="left")

# 滾動鼠標, clicks爲滾動像素
pyautogui.scroll(clicks=100, x=None, y=None)

緩動/漸變(Tween / Easing)函數:

緩動/漸變函數的作用是讓光標的移動更炫。如果你不需要用到的話,你可以忽略這些。

緩動/漸變函數可以改變光標移動過程的速度和方向。通常鼠標是勻速直線運動,這就是線性緩動/漸變函數。PyAutoGUI有30種緩動/漸變函數,可以通過pyautogui.ease*?查看。其中,pyautogui.easeInQuad()函數可以用於moveTo()moveRel()dragTo()dragRel()函數,光標移動呈現先慢後快的效果,整個過程的時間還是和原來一樣。而pyautogui.easeOutQuad函數的效果相反:光標開始移動很快,然後慢慢減速。pyautogui.easeOutElastic是彈簧效果,首先越過終點,然後再反彈回來。例如:

import pyautogui

# 開始很慢,不斷加速
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)

實踐運用:

import pyautogui

# 獲取屏幕尺寸
screenWidth, screenHeight = pyautogui.size()

# 鼠標移動到屏幕中心
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

# 將鼠標移動到固定位置
pyautogui.moveTo(100, 100)

# 用 "1秒" 的時間移動到固定位置
pyautogui.moveTo(100, 200, duration=1)

# 將鼠標移動到相對當前 "下方100" 的位置
pyautogui.moveRel(0, 100)

# 鼠標左鍵拖拽到屏幕 "100,200" 的位置
pyautogui.dragTo(100, 200, button='left')

# 鼠標左鍵用 "2秒" 拖拽到屏幕 "300,400" 的位置
pyautogui.dragTo(300, 400, 2, button='left')

# 鼠標左鍵用 "2秒" 拖拽到相對當前 "右邊30" 的位置
pyautogui.dragRel(30, 0, 2, button='left')

# 鼠標左鍵單擊
pyautogui.click()

# 鼠標左鍵單擊 "100,200" 位置
pyautogui.click(x=100, y=200)

# 鼠標左鍵雙擊
pyautogui.doubleClick()

# 鼠標左鍵三擊
pyautogui.tripleClick()

# 鼠標右鍵單擊
pyautogui.click(button='right')

# 鼠標右鍵單擊
pyautogui.rightClick()

# 鼠標右鍵間隔0.25秒單擊3次
pyautogui.click(button='right', clicks=3, interval=0.25)

# 鼠標左鍵放下
pyautogui.mouseDown()

# 鼠標左鍵擡起
pyautogui.mouseUp()

# 鼠標滾輪上滾10
pyautogui.scroll(10)

# 鼠標滾輪下滾10
pyautogui.scroll(-10)

2.3.2 鍵盤

知識點:

import pyautogui

# 輸入字符串, interval爲時間間隔
pyautogui.typewrite("message", interval=0.1)
# 按下某個鍵
pyautogui.keyDown("A")
# 鬆開某個鍵
pyautogui.keyUp("A")
# 一次完整的擊鍵,前面兩個函數的組合, presses爲按鍵次數
pyautogui.press("B", presses=5, interval=0.2)
# 直接使用熱鍵函數
pyautogui.hotkey('ctrl', 'a')

PyAutoGUI鍵盤表:

‘enter’(或‘return’ 或 ‘\n’)

回車

‘esc’

ESC鍵

‘shiftleft’, ‘shiftright’

左右SHIFT鍵

‘altleft’, ‘altright’

左右ALT鍵

‘ctrlleft’, ‘ctrlright’

左右CTRL鍵

‘tab’ (‘\t’)

TAB鍵

‘backspace’, ‘delete’

BACKSPACE 、DELETE鍵

‘pageup’, ‘pagedown’

PAGE UP 和 PAGE DOWN鍵

‘home’, ‘end’

HOME 和 END鍵

‘up’, ‘down’, ‘left’,‘right’

箭頭鍵

‘f1’, ‘f2’, ‘f3’….

F1…….F12鍵

‘volumemute’, ‘volumedown’,‘volumeup’

有些鍵盤沒有

‘pause’

PAUSE鍵

‘capslock’, ‘numlock’,‘scrolllock’

CAPS LOCK, NUM LOCK, 和 SCROLLLOCK 鍵

‘insert’

INS或INSERT鍵

‘printscreen’

PRTSC 或 PRINT SCREEN鍵

‘winleft’, ‘winright’

Win鍵

‘command’

Mac OS X command鍵

實踐應用:

import pyautogui

# 輸入一個字符串
pyautogui.typewrite('Hello world!')

# 每個字母間隔0.25秒輸入一個字符串
pyautogui.typewrite('Hello world!', interval=0.25)

# 鍵入 "a", 然後敲擊左方向鍵, 再鍵入 "b".
pyautogui.typewrite(['a', 'left', 'b'])

# 按鍵
pyautogui.press('esc')

# 連續按鍵
pyautogui.press(['left', 'left', 'left', 'left', 'left', 'left'])

# 鍵盤按下
pyautogui.keyDown('shift')

# 鍵盤釋放
pyautogui.keyUp('shift')

# 熱鍵按住ctrl的同時按下c
pyautogui.hotkey('ctrl', 'c')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章