python中pynput庫(kù)的具體使用
pynput
是一個(gè) Python 庫(kù),用于控制和監(jiān)聽(tīng)鍵盤與鼠標(biāo)輸入。它在 Windows、macOS 和 Linux 上都可以工作,為用戶提供了一個(gè)跨平臺(tái)的輸入事件處理方式。pynput
包含兩個(gè)主要模塊:keyboard
和 mouse
,分別用于處理鍵盤和鼠標(biāo)事件。
主要API介紹:
鍵盤模塊(keyboard)
KeyboardListener
:監(jiān)聽(tīng)鍵盤事件。Controller
:控制鍵盤輸入。
鼠標(biāo)模塊(mouse)
MouseListener
:監(jiān)聽(tīng)鼠標(biāo)事件。Controller
:控制鼠標(biāo)移動(dòng)和點(diǎn)擊。
常用API函數(shù):
鍵盤API
keyboard.Controller.press(key)
: 按下鍵。keyboard.Controller.release(key)
: 釋放鍵。keyboard.Controller.type(string)
: 輸入字符串。keyboard.Listener(on_press=None, on_release=None)
: 監(jiān)聽(tīng)鍵盤按鍵事件。
鼠標(biāo)API
mouse.Controller.position
: 獲取當(dāng)前鼠標(biāo)位置。mouse.Controller.move(x, y)
: 移動(dòng)鼠標(biāo)。mouse.Controller.press(button)
: 按下鼠標(biāo)按鈕。mouse.Controller.release(button)
: 釋放鼠標(biāo)按鈕。mouse.Controller.click(button, n)
: 單擊鼠標(biāo)按鈕n次。mouse.Listener(on_click=None, on_scroll=None, on_move=None)
: 監(jiān)聽(tīng)鼠標(biāo)事件。
具體示例:
鍵盤示例
from pynput.keyboard import Key, Listener, Controller # 創(chuàng)建鍵盤控制器 keyboard = Controller() def on_press(key): try: print('Alphanumeric key {0} pressed'.format(key.char)) except AttributeError: print('Special key {0} pressed'.format(key)) def on_release(key): print('{0} released'.format(key)) if key == Key.esc: # Stop listener return False # Collect events until released with Listener(on_press=on_press, on_release=on_release) as listener: listener.join() # 模擬鍵盤輸入 keyboard.type("Hello World!") keyboard.press(Key.enter) keyboard.release(Key.enter)
鼠標(biāo)示例
from pynput.mouse import Button, Controller, Listener # 創(chuàng)建鼠標(biāo)控制器 mouse = Controller() def on_move(x, y): print('Pointer moved to {0}'.format((x, y))) def on_click(x, y, button, pressed): if pressed: print('Mouse clicked at ({0}, {1}) with {2}'.format(x, y, button)) def on_scroll(x, y, dx, dy): print('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy)) # Collect events until released with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener: listener.join() # 模擬鼠標(biāo)移動(dòng)和點(diǎn)擊 mouse.position = (100, 200) mouse.click(Button.left, 1)
注意事項(xiàng):
- 在使用
pynput
監(jiān)聽(tīng)鍵盤和鼠標(biāo)事件時(shí),程序會(huì)阻塞直到監(jiān)聽(tīng)結(jié)束。 pynput
可能需要管理員權(quán)限才能運(yùn)行,特別是在 Windows 上。pynput
的事件監(jiān)聽(tīng)器可以設(shè)置為非阻塞模式,但默認(rèn)是阻塞的。
以上就是 pynput
的基礎(chǔ)使用方法和一些常見(jiàn)API的介紹。更多相關(guān)python pynput庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python爬蟲獲取整個(gè)站點(diǎn)中的所有外部鏈接代碼示例
這篇文章主要介紹了Python爬蟲獲取整個(gè)站點(diǎn)中的所有外部鏈接代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12pandas?Dataframe實(shí)現(xiàn)批量修改值的方法
這篇文章主要介紹了pandas?Dataframe實(shí)現(xiàn)批量修改值的方法,在使用dataframe的時(shí)候?有時(shí)候會(huì)碰到需要批量修改數(shù)據(jù)的時(shí)候,下面文章主要說(shuō)明兩種情況使用iloc對(duì)某幾行某幾列進(jìn)行全部修該和對(duì)數(shù)據(jù)進(jìn)行判定后,相互+/-/*某個(gè)數(shù),使用內(nèi)置函數(shù),需要的朋友可以參考一下2022-06-06Django form表單與請(qǐng)求的生命周期步驟詳解
這篇文章主要介紹了Django-form表單與請(qǐng)求的生命周期,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06python 使用poster模塊進(jìn)行http方式的文件傳輸?shù)椒?wù)器的方法
今天小編就為大家分享一篇python 使用poster模塊進(jìn)行http方式的文件傳輸?shù)椒?wù)器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python如何實(shí)現(xiàn)自帶HTTP文件傳輸服務(wù)
這篇文章主要介紹了Python如何實(shí)現(xiàn)自帶HTTP文件傳輸服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07