欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 偷懶技巧——使用 keyboard 錄制鍵盤(pán)事件

 更新時(shí)間:2020年09月21日 09:55:20   作者:starryland  
這篇文章主要介紹了python如何使用 keyboard 錄制鍵盤(pán)事件,幫助大家提高工作效率,感興趣的朋友可以了解下

之前在某本書(shū)上看到一個(gè)程序,可以通過(guò) Python 記錄下全局范圍內(nèi)的鍵盤(pán)事件,使用的是 ctypes 庫(kù)。
后來(lái)幾經(jīng)嘗試,始終不能成功運(yùn)行。原來(lái)它只支持 Python2 和 32 位的 Windows 系統(tǒng)。。。Excuse me?
于是在網(wǎng)上查找可行的替代方案,比如 pyHook 。呃,不合胃口。安裝比較繁瑣(有依賴庫(kù)且不能通過(guò) pip 命令安裝),只支持 Windows 系統(tǒng),況且又是十年前就沒(méi)再更新的項(xiàng)目。。??戳讼潞瘮?shù)調(diào)用也算不上簡(jiǎn)潔直觀。

后來(lái)又多番搜索,終于找到了一個(gè)名為keyboard 的 Python 庫(kù),可以綁定全局事件、錄制及模擬鍵盤(pán)輸入、設(shè)置熱鍵等。
尤其是安裝和使用足夠簡(jiǎn)單,比較合我的心意(畢竟 Github 上將近 1.5K 的小星星)。

一、特性

  • 全局范圍內(nèi)的鍵盤(pán)事件綁定。即程序可以后臺(tái)運(yùn)行,捕捉其他軟件下的按鍵動(dòng)作。
  • 跨平臺(tái),支持 Windows 、Linux 以及 MacOS 系統(tǒng)。支持 Python2 和 Python3 。
  • 純 Python 代碼,無(wú)需編譯 C 語(yǔ)言模塊。無(wú)依賴庫(kù),安裝簡(jiǎn)單(只是復(fù)制文件就可以)。
  • 通過(guò)獨(dú)立的線程捕捉事件,不阻塞主程序的運(yùn)行。
  • 很詳細(xì)的文檔,參見(jiàn)項(xiàng)目主頁(yè)的 README 。

其實(shí)我真的有點(diǎn)感覺(jué),這才是我心目中比較“現(xiàn)代”的工具。

二、錄制及模擬按鍵動(dòng)作

就像前面提到的,安裝 keyboard 的流程非常簡(jiǎn)單,無(wú)需考慮任何兼容性或者依賴問(wèn)題,只需要一條簡(jiǎn)短的命令:

$ pip install keyboard

可以使用下面的代碼錄制 10 秒鐘的鍵盤(pán)事件,并將其回放一遍(即重復(fù)按下之前操作的按鍵):

import keyboard
import time

keyboard.start_recording()
time.sleep(10)
events = keyboard.stop_recording()
keyboard.replay(events)

可以使用如下代碼制作一個(gè)簡(jiǎn)單的 “鍵盤(pán)錄制器” (打印輸出全局范圍內(nèi)的按鍵動(dòng)作,并將按鍵順序保存在文本文件中):

import keyboard

def print_pressed_keys(e):
  line = ', '.join(str(code) for code in keyboard._pressed_events)
  print(line)

  with open('keylogger.txt', 'a+') as f:
    f.write(line + '\n')

keyboard.hook(print_pressed_keys)
keyboard.wait()

PS:上述代碼中的 code 并不是對(duì)應(yīng)按鍵的 ASCII 碼,而是根據(jù)鍵盤(pán)布局為按鍵指定的數(shù)值(如 a 鍵為 30,b 鍵為 42 等等),可以通過(guò)自行測(cè)試確認(rèn)具體的對(duì)應(yīng)關(guān)系。

如同時(shí)按下兩個(gè)或多個(gè)按鍵,則上述程序會(huì)以 code, code... 的形式輸出。

三、熱鍵捕獲及綁定

可以使用如下代碼錄制熱鍵并為該熱鍵綁定上特定的觸發(fā)事件:

import keyboard

print('Press and release your desired hotkey: ')
hotkey = keyboard.read_hotkey()
print('Hotkey selected: ', hotkey)

def on_triggered():
  print("Triggered!")

keyboard.add_hotkey(hotkey, on_triggered)
print("Press ESC to stop.")

其他的使用方式就不再一一列舉了,可以參考 keyboard 項(xiàng)目的 Github 主頁(yè) 。

幾種常見(jiàn)的使用示例也已經(jīng)包含在項(xiàng)目代碼的 examples 目錄下。

以上就是python 偷懶技巧——使用 keyboard 錄制鍵盤(pán)事件的詳細(xì)內(nèi)容,更多關(guān)于python keyboard 錄制鍵盤(pán)事件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python可變集合和不可變集合的構(gòu)造方法大全

    Python可變集合和不可變集合的構(gòu)造方法大全

    Python集合分為變集合和不可變集合兩種,本文就詳細(xì)的來(lái)介紹一下這兩種集合的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • python實(shí)現(xiàn)的簡(jiǎn)單RPG游戲流程實(shí)例

    python實(shí)現(xiàn)的簡(jiǎn)單RPG游戲流程實(shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)的簡(jiǎn)單RPG游戲流程,實(shí)例分析了Python實(shí)現(xiàn)RPG游戲流程的常用判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-06-06
  • python的描述器descriptor詳解

    python的描述器descriptor詳解

    這篇文章主要介紹了python的描述器descriptor詳解,描述器可以用于控制屬性的讀取、寫(xiě)入和刪除等操作,同時(shí)還可以用于實(shí)現(xiàn)計(jì)算屬性、類(lèi)屬性、屬性別名等高級(jí)功能,需要的朋友可以參考下
    2023-07-07
  • python根據(jù)出生日期獲得年齡的方法

    python根據(jù)出生日期獲得年齡的方法

    這篇文章主要介紹了python根據(jù)出生日期獲得年齡的方法,涉及Python操作日期的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Python實(shí)現(xiàn)釘釘/企業(yè)微信自動(dòng)打卡的示例代碼

    Python實(shí)現(xiàn)釘釘/企業(yè)微信自動(dòng)打卡的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)釘釘/企業(yè)微信自動(dòng)打卡的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python音頻處理的示例詳解

    python音頻處理的示例詳解

    這篇文章主要介紹了python音頻處理的示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Python類(lèi)的定義和使用詳情

    Python類(lèi)的定義和使用詳情

    這篇文章主要介紹了Python類(lèi)的定義與使用,類(lèi)名只要是一個(gè)合法的標(biāo)識(shí)符即可,但這僅僅滿足的是?Python?的語(yǔ)法要求:如果從程序的可讀性方面來(lái)看,Python?的類(lèi)名必須是由一個(gè)或多個(gè)有意義的單詞連綴而成的,下文基于這些基礎(chǔ)內(nèi)容展開(kāi)介紹,需要的朋友可以參考一下
    2022-03-03
  • python實(shí)現(xiàn)自動(dòng)發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例

    python實(shí)現(xiàn)自動(dòng)發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例

    下面小編就為大家分享一篇python實(shí)現(xiàn)自動(dòng)發(fā)送郵件發(fā)送多人、群發(fā)、多附件的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • python 列表元素左右循環(huán)移動(dòng) 的多種解決方案

    python 列表元素左右循環(huán)移動(dòng) 的多種解決方案

    這篇文章主要介紹了python 列表元素左右循環(huán)移動(dòng) 的多種解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 分享10個(gè)有趣的Python程序

    分享10個(gè)有趣的Python程序

    這篇文章主要給大家分享的是10個(gè)有趣的Python程序,Python程序有許多模塊和第三方包,這非常有助于高效編程,所以了解這些模塊的正確使用方法是很重要的,下面詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02

最新評(píng)論