天天看點

桌面自動化---PyAutoGUI

一:安裝

二:滑鼠操作:

1:螢幕和滑鼠的位置(行X豎Y):

2:擷取螢幕和滑鼠的位置:

3:滑鼠移動和點選:

4: 滑鼠移動案例:

5:滑鼠拖拽

6: 滑鼠滾動

7:保護措施:

8: mouseDown()和mouseUp()函數

三:鍵盤操作:

1:write函數的使用

2:press函數,keyDown和keyUp函數的使用:

3:hotkey函數的使用:

四:資訊框操作:

五:截圖和定位操作:

1:screenshot函數的使用:

2:locateOnScreen與locateCenterOnScreen函數的使用:

3:提高定位精度

4:加速定位

windows: pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple
mac: pip install pyobjc-core pip install pyobjc pip install pyautogui
linux: #sudo apt-get install scrot python3-tk python3-dev pip install python3-xlib

左上角的像素位于坐标0、0。如果螢幕的分辨率為1920 x 1080,則右下角的像素将為1919、1079(因為坐标始于0,而不是1)。

螢幕分辨率大小由該size()函數作為兩個整數的元組傳回。該position()函數傳回滑鼠光标的目前X和Y坐标。

桌面自動化---PyAutoGUI

注意: 擷取到的是電腦設定中的分辨率。如果是虛拟機也是按照虛拟機的設定,不能根據電腦中的分辨率。

相對移動:pyautogui.move(65, 168)—相對的是目前滑鼠的位置。

絕對移動: pyautogui.moveTo(65, 168)

每個動作後停留時間: pyautogui.PAUSE = 2

判斷像素點是不是在螢幕中:pyautogui.onScreen(65, 168)

目前位置點選: pyautogui.click()

先移動到位置再點選: pyautogui.click(x=100, y=200)

移動到某個位置左擊,右擊,中間點選:pyaotogui.click(x=100, y=200, button=‘right’)

移動到某個位置左擊,右擊,中間多次點選: pyaotogui.click(x=100, y=200, button=‘right’, clicks=3)

移動到某個位置左擊,右擊,中間多次點選,中間間隔0.25秒點選:pyaotogui.click(x=100, y=200, button=‘right’, clicks=3, interval=0.25)

左擊: pyautogui.leftClick(x, y, 過程中秒數)

右擊:pyautogui.rightClick(x, y, 過程中秒數)

輕按兩下:pyautogui.doubleClick(x, y, 過程中秒數)

描述:定位桌面的資源回收筒,然後右擊,再用相對路徑,左擊屬性。

案例:将資源回收筒向右拖拽500像素。

案例:定位到代碼框,然後滾動

為了能夠及時中斷,PyAutoGUI提供了一個保護措施。當pyautogui.FAILSAFE = True時,如果把滑鼠光标在螢幕左上角,PyAutoGUI函數就會産生pyautogui.FailSafeException異常。如果失控了,需要中斷PyAutoGUI函數,就把滑鼠光标在螢幕左上角。要禁用這個特性,就把FAILSAFE設定成False。

案例:禁用保護

中文不支援,需要配合pyperclip一起使用。

interval 關鍵字進行延時操作。

案例:手動打開記事本,定位到記事本,分别寫入“hahaha”和“哈哈哈”。

案例: 使用pass函數,和keydown,keyup,write函數分别完成一次,敲擊回車

案例使用熱鍵:打開任務管理器:

方法

作用

pyautogui.alert()

簡單提示消息框

pyautogui.confirm()

多按鈕消息框

pyautogui.prompt()

明文輸入消息框

pyautogui.password()

密文輸入消息框

案例一:

顯示帶有文本和單個“确定”按鈕的簡單消息框。傳回單擊的按鈕的文本。

桌面自動化---PyAutoGUI
桌面自動化---PyAutoGUI

案例二:顯示帶有“确定”和“取消”按鈕的消息框。可以自定義按鈕的數量和文本。傳回單擊的按鈕的文本。(點選取消)

桌面自動化---PyAutoGUI
桌面自動化---PyAutoGUI

案例三:顯示帶有文本輸入以及“确定”和“取消”按鈕的消息框。傳回輸入的文本,如果單擊“取消”,則傳回“無”。

桌面自動化---PyAutoGUI
桌面自動化---PyAutoGUI

案例四:顯示帶有文本輸入以及“确定”和“取消”按鈕的消息框。輸入的字元顯示為*。傳回輸入的文本,如果單擊“取消”,則傳回“無”。

桌面自動化---PyAutoGUI
桌面自動化---PyAutoGUI

案例: 截取資源回收筒圖示,儲存到檔案中。

截圖如圖所示:

桌面自動化---PyAutoGUI

傳回的是Image對象

桌面自動化---PyAutoGUI

案例一:通過剛才截取的圖檔,找到資源回收筒的位置,然後輕按兩下資源回收筒打開。(全屏搜尋)

桌面自動化---PyAutoGUI

案例二:使用locateCenterOnScreen,在區域内查詢。

桌面自動化---PyAutoGUI

1: 安裝OpenCv,由于檔案太大需要指定預設等待下載下傳時間(如果網速好可以不用指定)

桌面自動化---PyAutoGUI
pip --default-timeout=20000 install -U opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 表示下載下傳成功。
桌面自動化---PyAutoGUI

2:可選的confidence關鍵字參數指定函數在螢幕上定位圖像的精度。

1: 指定搜尋區域:

2: 降低圖檔顔色的飽和度: