一:安裝
二:滑鼠操作:
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坐标。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CZiF2NmR2MyImZ4MmNjNjN5M2YmJmN1MDZlRjM2YzNm9CXwMzLcdDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL1M3Lc9CX6MHc0RHaiojIsJye.png)
注意: 擷取到的是電腦設定中的分辨率。如果是虛拟機也是按照虛拟機的設定,不能根據電腦中的分辨率。
相對移動: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()
密文輸入消息框
案例一:
顯示帶有文本和單個“确定”按鈕的簡單消息框。傳回單擊的按鈕的文本。
案例二:顯示帶有“确定”和“取消”按鈕的消息框。可以自定義按鈕的數量和文本。傳回單擊的按鈕的文本。(點選取消)
案例三:顯示帶有文本輸入以及“确定”和“取消”按鈕的消息框。傳回輸入的文本,如果單擊“取消”,則傳回“無”。
案例四:顯示帶有文本輸入以及“确定”和“取消”按鈕的消息框。輸入的字元顯示為*。傳回輸入的文本,如果單擊“取消”,則傳回“無”。
案例: 截取資源回收筒圖示,儲存到檔案中。
截圖如圖所示:
傳回的是Image對象
案例一:通過剛才截取的圖檔,找到資源回收筒的位置,然後輕按兩下資源回收筒打開。(全屏搜尋)
案例二:使用locateCenterOnScreen,在區域内查詢。
1: 安裝OpenCv,由于檔案太大需要指定預設等待下載下傳時間(如果網速好可以不用指定)
pip --default-timeout=20000 install -U opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 表示下載下傳成功。
2:可選的confidence關鍵字參數指定函數在螢幕上定位圖像的精度。
1: 指定搜尋區域:
2: 降低圖檔顔色的飽和度: