之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库。
后来几经尝试,始终不能成功运行。原来它只支持 Python2 和 32 位的 Windows 系统。。。Excuse me?
于是在网上查找可行的替代方案,比如 pyHook 。呃,不合胃口。安装比较繁琐(有依赖库且不能通过 pip 命令安装),只支持 Windows 系统,况且又是十年前就没再更新的项目。。。看了下函数调用也算不上简洁直观。
后来又多番搜索,终于找到了一个名为keyboard 的 Python 库,可以绑定全局事件、录制及模拟键盘输入、设置热键等。
尤其是安装和使用足够简单,比较合我的心意(毕竟 Github 上将近 1.5K 的小星星)。
一、特性
- 全局范围内的键盘事件绑定。即程序可以后台运行,捕捉其他软件下的按键动作。
- 跨平台,支持 Windows 、Linux 以及 MacOS 系统。支持 Python2 和 Python3 。
- 纯 Python 代码,无需编译 C 语言模块。无依赖库,安装简单(只是复制文件就可以)。
- 通过独立的线程捕捉事件,不阻塞主程序的运行。
- 很详细的文档,参见项目主页的 README 。
其实我真的有点感觉,这才是我心目中比较“现代”的工具。
二、录制及模拟按键动作
就像前面提到的,安装 keyboard 的流程非常简单,无需考虑任何兼容性或者依赖问题,只需要一条简短的命令:
$ pip install keyboard
可以使用下面的代码录制 10 秒钟的键盘事件,并将其回放一遍(即重复按下之前操作的按键):
import keyboard import time keyboard.start_recording() time.sleep(10) events = keyboard.stop_recording() keyboard.replay(events)
可以使用如下代码制作一个简单的 “键盘录制器” (打印输出全局范围内的按键动作,并将按键顺序保存在文本文件中):
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 并不是对应按键的 ASCII 码,而是根据键盘布局为按键指定的数值(如 a 键为 30,b 键为 42 等等),可以通过自行测试确认具体的对应关系。
如同时按下两个或多个按键,则上述程序会以 code, code... 的形式输出。
三、热键捕获及绑定
可以使用如下代码录制热键并为该热键绑定上特定的触发事件:
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 项目的 Github 主页 。
几种常见的使用示例也已经包含在项目代码的 examples 目录下。
以上就是python 偷懒技巧——使用 keyboard 录制键盘事件的详细内容,更多关于python keyboard 录制键盘事件的资料请关注其它相关文章!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 《暗喻幻想》顺风耳作用介绍
- 崔健1985-梦中的倾诉[再版][WAV+CUE]
- 黄子馨《追星Xin的恋人们2》HQ头版限量编号[WAV+CUE]
- 孟庭苇《情人的眼泪》开盘母带[低速原抓WAV+CUE]
- 孙露《谁为我停留HQCD》[低速原抓WAV+CUE][1.1G]
- 孙悦《时光音乐会》纯银CD[低速原抓WAV+CUE][1.1G]
- 任然《渐晚》[FLAC/分轨][72.32MB]
- 英雄联盟新英雄安蓓萨上线了吗 新英雄安蓓萨技能介绍
- 魔兽世界奥杜尔竞速赛什么时候开启 奥杜尔竞速赛开启时间介绍
- 无畏契约CGRS准星代码多少 CGRS准星代码分享一览
- 张靓颖.2012-倾听【少城时代】【WAV+CUE】
- 游鸿明.1999-五月的雪【大宇国际】【WAV+CUE】
- 曹方.2005-遇见我【钛友文化】【WAV+CUE】
- Unity6引擎上线:稳定性提升、CPU性能最高提升4倍
- 人皇Sky今日举行婚礼!电竞传奇步入新篇章