Python鍵鼠操作自動(dòng)化庫(kù)PyAutoGUI簡(jiǎn)介

PyAutoGUI是一個(gè)Python語(yǔ)言的鍵鼠自動(dòng)化庫(kù),簡(jiǎn)單來說和按鍵精靈的功能一樣。但是因?yàn)槭荘ython的類庫(kù),所以可以使用Python代碼配合一些其他類庫(kù)完成更加強(qiáng)大的功能。下面讓我為大家介紹一下吧。

安裝

從pip安裝即可。

pip install pyautogui

稍等一下安裝就完畢了。

從pip安裝類庫(kù)

使用介紹

簡(jiǎn)單介紹一下PyAutoGUI的函數(shù)以及使用方法。

鼠標(biāo)操作函數(shù)

操作鼠標(biāo)點(diǎn)擊的函數(shù)。

函數(shù) 簡(jiǎn)單說明
move(x,y)、 moveTo(x,y) 移動(dòng)鼠標(biāo),前者移動(dòng)相對(duì)位置,后者移動(dòng)到指定位置
click(x,y)、doubleClick、rightClick 單擊/雙擊/右擊,無參版本在當(dāng)前位置點(diǎn)擊鼠標(biāo)
drag(x,y)、dragTo(x,y) 拖動(dòng)鼠標(biāo)
mouseDown、mouseUp 按下按鍵,松開按鍵
scroll 向下滾動(dòng)鼠標(biāo)滾輪的函數(shù)

鍵盤操作函數(shù)

操作鍵盤按鍵的函數(shù)。

函數(shù) 簡(jiǎn)介
press('left',press=3)
hotkey('ctrl','s') 按下Ctrl+S組合鍵
keyDown、keyUp 按下和松開鍵盤按鍵

提示框函數(shù)

PyAutoGUI可以顯示提示框,這時(shí)候程序會(huì)暫停運(yùn)行,直到用戶點(diǎn)擊提示框。

函數(shù) 簡(jiǎn)介
alert(text='',title='',button=['OK','Cancle']) 顯示警告對(duì)話框
confirm() 顯示確認(rèn)對(duì)話框
prompt() 顯示提示對(duì)話框
password() 顯示密碼輸入對(duì)話框

屏幕截圖和定位函數(shù)

截取屏幕的函數(shù),也可以從屏幕中尋找匹配的圖片,并返回其坐標(biāo)。你可以事先保存一些按鈕的截圖,然后通過這種方式定位按鈕的位置,然后點(diǎn)擊。

函數(shù) 簡(jiǎn)介
screenshot('image.png') 保存截圖并返回截圖,無參版本直接返回截圖不保存
center('image.png') 從屏幕上尋找圖片位置,返回框位置
locateOnScreen('img') 從屏幕尋找圖片位置,直接返回坐標(biāo)

簡(jiǎn)單例子

先來看看官網(wǎng)的畫圖例子,我把代碼稍微改了一下。運(yùn)行這個(gè)例子需要先打開一個(gè)畫圖窗口,并放到全屏,然后運(yùn)行Python代碼,迅速將畫圖程序切換到前臺(tái)。這樣就可以看到PyAutoGUI控制鼠標(biāo)來繪制精確的直線了。

import pyautogui
import time

time.sleep(3)

distance = 100
pyautogui.moveTo(400, 300)
while distance > 0:
    pyautogui.drag(distance, 0, duration=0.1)   
    distance -= 5
    pyautogui.drag(0, distance, duration=0.1)   
    pyautogui.drag(-distance, 0, duration=0.1) 
    distance -= 5
    pyautogui.drag(0, -distance, duration=0.1)  

繪制出來的圖片應(yīng)該是這樣的。

圖片結(jié)果

如果要完成一些實(shí)際工作,難免會(huì)遇到識(shí)別點(diǎn)擊復(fù)雜樣式圖片的場(chǎng)景。前面提到了截圖和圖片識(shí)別可以比較好的解決這個(gè)問題。這個(gè)例子需要先安裝OpenCV庫(kù)和opencv-python包,安裝完畢之后就可以運(yùn)行了。這里將win10計(jì)算器的幾個(gè)按鈕保存成圖片,然后用PyAutoGUI的圖片識(shí)別功能找到按鈕的坐標(biāo),這樣就可以無障礙的點(diǎn)擊按鈕,無需關(guān)心窗口的位置。特別提一點(diǎn),下面的confidence參數(shù)需要安裝了OpenCV才可以使用,它允許我們模糊匹配圖片。

import pyautogui
import time

time.sleep(3)

# Windows計(jì)算器的按鈕截圖
five = '5.png'
eight = '8.png'
multiply = 'multiply.png'
equals = 'equals.png'

# 圖片識(shí)別和點(diǎn)擊的函數(shù)


def find_and_click(image):
    x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9)
    pyautogui.click(x, y)


# 執(zhí)行5*8=
find_and_click(five)
find_and_click(multiply)
find_and_click(eight)
find_and_click(equals)

這個(gè)例子的截圖和代碼都在我的github上,歡迎大家查看。

https://github.com/techstay/python-study/tree/master/pyautogui-sample
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容