Python直接控制鼠標鍵盤


Python直接控制鼠標鍵盤

之前因為期末的原因已經很久沒寫博客了,今天博主發現一個好玩的模塊PyAutoGUI,借助它可以使用Python腳本直接控制鍵盤鼠標,感覺可以解決很多無聊的機械運動。這里記錄一下學習情況

安裝

$ sudo pip install pyautogui

安裝的依賴包可能比較多,只要耐心等待即可

基本使用

screenWidth, screenHeight = pyautogui.size() # 屏幕尺寸
mouseX, mouseY = pyautogui.position() # 返回當前鼠標位置,注意坐標系統中左上方是(0, 0)

為了保持用戶可以隨時干預鼠標鍵盤的動作,比較好的方法是添加停頓,或者強制結束,否則想停了鼠標還一直在晃就會失控,下面是兩種對應的設置

pyautogui.PAUSE = 1.5 # 每個函數執行后停頓1.5秒
pyautogui.FAILSAFE = True # 鼠標移到左上角會觸發FailSafeException,因此快速移動鼠標到左上角也可以停止

鼠標操作

移動

w, h = pyautogui.size()
pyautogui.moveTo(w/2, h/2) # 基本移動
pyautogui.moveTo(100, 200, duration=2) # 移動過程持續2s完成
pyautogui.moveTo(None, 500) # X方向不變,Y方向移動到500

pyautogui.moveRel(-40, 500) # 相對位置移動

拖動

# 點擊+向下拖動
pyautogui.click(941, 34, button='left')
pyautogui.dragRel(0, 100, button='left', duration=5)

點擊

pyautogui.click(300, 400, button='right') # 包含了move的點擊,右鍵
pyautogui.click(clicks=2, interval=0.25) # 雙擊,間隔0.25s

滾輪

pyautogui.scroll(-10)

鍵盤操作

輸入文字

點擊對話框輸入文字即可,不過中文好像不行

pyautogui.click(1279, 374)
pyautogui.typewrite('hello world!')

精確控制鍵盤

一下是手動輸入中文的方法

pyautogui.press('shift') # 切換輸入法的中英文
pyautogui.press(['#', ' ']) # press 可以對單個字符或者列表進行操作
pyautogui.press(['x', 'i', 'a', 'o'])
pyautogui.press(['y', 'u'])
pyautogui.press(['w', 'e', 'i'])
pyautogui.press(['l', 'a', 'n'])
pyautogui.press(' ')

# 瀟雨危欄

hotKey

pyautogui.hotkey('shift', 'a') # 可以使用組合鍵,本質上是
'''
pyautogui.keyDown('shift')
pyautogui.keyDown('a')
pyautogui.keyUp('shift')
pyautogui.keyUp('a')
'''

小結

PyAutoGUI模擬了鼠標鍵盤的輸入,感覺機器好像被腳本操控了,具體的應用還沒想好,感覺好像能解決一些爬蟲的問題。這個庫的靈活之處在於應用無關性,缺點也在於這一點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM