1. 程式人生 > 程式設計 >Python鍵鼠操作自動化庫PyAutoGUI簡介(小結)

Python鍵鼠操作自動化庫PyAutoGUI簡介(小結)

PyAutoGUI是一個Python語言的鍵鼠自動化庫,簡單來說和按鍵精靈的功能一樣。但是因為是Python的類庫,所以可以使用Python程式碼配合一些其他類庫完成更加強大的功能。下面讓我為大家介紹一下吧。

安裝

從pip安裝即可。

pip install pyautogui

稍等一下安裝就完畢了。

Python鍵鼠操作自動化庫PyAutoGUI簡介(小結)

使用介紹

簡單介紹一下PyAutoGUI的函式以及使用方法。

滑鼠操作函式

操作滑鼠點選的函式。

函式 簡單說明
move(x,y)、 moveTo(x,y) 移動滑鼠,前者移動相對位置,後者移動到指定位置
click(x,y)、doubleClick、rightClick 單擊/雙擊/右擊,無參版本在當前位置點選滑鼠
drag(x,y)、dragTo(x,y) 拖動滑鼠
mouseDown、mouseUp 按下按鍵,鬆開按鍵
scroll 向下滾動滑鼠滾輪的函式

鍵盤操作函式

操作鍵盤按鍵的函式。

函式 簡介
press('left',press=3)
hotkey('ctrl','s') 按下Ctrl+S組合鍵
keyDown、keyUp 按下和鬆開鍵盤按鍵

提示框函式

PyAutoGUI可以顯示提示框,這時候程式會暫停執行,直到使用者點選提示框。

函式 簡介
alert(text='',title='',button=['OK','Cancle']) 顯示警告對話方塊
confirm() 顯示確認對話方塊
prompt() 顯示提示對話方塊
password() 顯示密碼輸入對話方塊

螢幕截圖和定位函式

擷取螢幕的函式,也可以從螢幕中尋找匹配的圖片,並返回其座標。你可以事先儲存一些按鈕的截圖,然後通過這種方式定位按鈕的位置,然後點選。

函式 簡介
screenshot('image.png') 儲存截圖並返回截圖,無參版本直接返回截圖不儲存
center('image.png') 從螢幕上尋找圖片位置,返回框位置
locateOnScreen('img') 從螢幕尋找圖片位置,直接返回座標

簡單例子

先來看看官網的畫圖例子,我把程式碼稍微改了一下。執行這個例子需要先開啟一個畫圖視窗,並放到全屏,然後執行Python程式碼,迅速將畫圖程式切換到前臺。這樣就可以看到PyAutoGUI控制滑鼠來繪製精確的直線了。

import pyautogui
import time

time.sleep(3)

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

繪製出來的圖片應該是這樣的。

Python鍵鼠操作自動化庫PyAutoGUI簡介(小結)

如果要完成一些實際工作,難免會遇到識別點選複雜樣式圖片的場景。前面提到了截圖和圖片識別可以比較好的解決這個問題。這個例子需要先安裝OpenCV庫和opencv-python包,安裝完畢之後就可以運行了。這裡將win10計算器的幾個按鈕儲存成圖片,然後用PyAutoGUI的圖片識別功能找到按鈕的座標,這樣就可以無障礙的點選按鈕,無需關心視窗的位置。特別提一點,下面的confidence引數需要安裝了OpenCV才可以使用,它允許我們模糊匹配圖片。

import pyautogui
import time

time.sleep(3)

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

# 圖片識別和點選的函式


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


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

這個例子的截圖和程式碼都在我的github上,歡迎大家檢視。

https://github.com/techstay/python-study/tree/master/pyautogui-sample

到此這篇關於Python鍵鼠操作自動化庫PyAutoGUI簡介(小結)的文章就介紹到這了,更多相關Python PyAutoGUI內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!