Python控制鍵盤鼠標:pynput,mouse,keyboard


mouse:顧名思義,是控制鼠標的模塊,本篇不打算介紹,有興趣可以看官網mouse

keyboard:同樣,是控制鍵盤的模塊,可以完全控制鍵盤,本篇不打算介紹,源碼很少,有興趣可以看官網keyboard

一.介紹

pynput這個庫讓你可以控制和監控輸入設備,它包含一個子模塊來控制和監控該種輸入設備:

  • pynput.mouse:包含控制和監控鼠標或者觸摸板的類。

  • pynput.keyboard:包含控制和監控鍵盤的類。

兩個子模塊的結構,兩者結構相同

二.實例

2.1  pynput.mouse

 

from pynput.mouse import Button, Controller,Listener

# Controller類
m = Controller()
print('鼠標的坐標:{0}'.format(m.position))
m.position = (500, 200)
print('設置鼠標的坐標:{0}'.format(m.position))
# 相對於當前位置移動鼠標
m.move(m.position[0],m.position[1])
# 按下鼠標左鍵以及松開鼠標左鍵,按下並不是點擊
m.press(Button.left)
m.release(Button.left)
#雙擊鼠標右鍵
m.click(Button.right, 2)
#滾動
m.scroll(0, 2)


# Listener類,監聽鼠標事件
def on_move(x, y):
    print('移動到了:{0}'.format((x, y)))

def on_click(x, y, button, pressed):
    print('{0} at {1}'.format('按下' if pressed else '松開',(x, y)))
    if not pressed:
        # 停止監聽
        return False
# 監聽滾動事件
def on_scroll(x, y, dx, dy):
    print('滾動到: {0}'.format((x, y)))

with Listener(on_move=on_move,on_click=on_click,on_scroll=on_scroll) as listener:
    listener.join()
pynput.mouse

運行結果:

 

2.2  pynput.keyboard

keyboard是支持線程的

 

from pynput.keyboard import Key, Controller,Listener

keyboard = Controller()

# 按下空格和釋放空格
keyboard.press(Key.space)
keyboard.release(Key.space)

# 按下a鍵和釋放a鍵
keyboard.press('a')
keyboard.release('a')
# 按下shift,但是物理端不換,只對本次設置有效
with keyboard.pressed(Key.shift):
    keyboard.press('a')
    keyboard.release('a')
    keyboard.press('b')
keyboard.type('Hello World')




def on_press(key):
    print('{0} 被按下'.format(key))

def on_release(key):
    print('{0} 被釋放'.format(key))
    if key == Key.esc:
        return False
# 創建監聽
with Listener(on_press=on_press,on_release=on_release) as listener:
    listener.join()
pynput.keyboard

 

運行結果:

 

 

 reference: pynput


免責聲明!

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



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