python利用 keyboard 库记录键盘事件


Posted in Python onOctober 16, 2020

今天也不知道是想了什么,突然就想要试试看我有效击键时的手速到底有多快。为此,需要记录下来击键的记录。于是找到了 Python 的 keyboard 库。

安装非常简单,只需执行 pip install keyboard 即可。

键盘事件录制

保存并执行如下代码

import keyboard
import time

keyboard.hook(lambda e: print(e, time.clock()))
keyboard.wait('Ctrl')

这里,我们利用 keyboard.hook 为每个键盘事件下钩子,并且执行其中的 lambda 函数。keyboard.wait() 的作用是阻塞进程,直到按下 Ctrl 键。

测试结果如下:

KeyboardEvent(g down) 4.450576466
KeyboardEvent(g up) 4.505627652
KeyboardEvent(i down) 4.510628277
KeyboardEvent(t down) 4.570555791
KeyboardEvent(i up) 4.580582066
KeyboardEvent(space down) 4.581583136
KeyboardEvent(p down) 4.630656009
KeyboardEvent(t up) 4.671189791
KeyboardEvent(space up) 4.693182730
KeyboardEvent(p up) 4.705543556
KeyboardEvent(u down) 4.705867633
KeyboardEvent(s down) 4.730623806
KeyboardEvent(u up) 4.750832241
KeyboardEvent(s up) 4.795770594
KeyboardEvent(h down) 4.810543976
KeyboardEvent(h up) 4.86056459
KeyboardEvent(enter down) 4.920739469
KeyboardEvent(enter up) 4.930514276
KeyboardEvent(ctrl down) 7.030813124

从中可见,在敲下 git push<enter> 这条命令的过程中,发生了多次击键交错的现象(即上一个按键还未完全弹起,下一个按键就已经触发)。这是在高速击键时很常见的现象。此外,输入到执行这条命令,总共花费了不到 0.5 s 的时间,不愧曾经单身多年 ←_←。

热键捕获绑定

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.")

以上就是python利用 keyboard 库记录键盘事件的详细内容,更多关于python 记录键盘事件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python中随机函数random用法实例
Apr 30 Python
Python 模板引擎的注入问题分析
Jan 01 Python
python批量复制图片到另一个文件夹
Sep 17 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 Python
Python使用turtle库绘制小猪佩奇(实例代码)
Jan 16 Python
Python使用sqlite3模块内置数据库
May 07 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
Jul 31 Python
Python WSGI 规范简介
Apr 11 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
python语言中pandas字符串分割str.split()函数
Aug 05 Python
python实现快速文件格式批量转换的方法
Oct 16 #Python
Python通过getattr函数获取对象的属性值
Oct 16 #Python
pandas处理csv文件的方法步骤
Oct 16 #Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 #Python
Python使用内置函数setattr设置对象的属性值
Oct 16 #Python
python pymysql库的常用操作
Oct 16 #Python
Python基于callable函数检测对象是否可被调用
Oct 16 #Python
You might like
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
php如何获取Http请求
2020/04/30 PHP
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
python操作日期和时间的方法
2014/03/11 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
Python面向对象之继承代码详解
2018/01/29 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
Python递归函数特点及原理解析
2020/03/04 Python
设计总监岗位职责
2013/12/07 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
总经理致辞
2015/07/29 职场文书
学习经验交流会总结
2015/11/02 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
工作简历的自我评价
2019/05/16 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang