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 中的多线程 新手必看
Nov 20 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
我喜欢你 抖音表白程序python版
Apr 07 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
python flask中动态URL规则详解
Nov 22 Python
pytorch1.0中torch.nn.Conv2d用法详解
Jan 10 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
Python脚本去除文件的只读性操作
Mar 05 Python
python实现拼接图片
Mar 23 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
python爬虫--selenium模块
Mar 31 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常用技巧总结(附函数代码)
2012/02/04 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
详解Python中expandtabs()方法的使用
2015/05/18 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
python with语句的原理与用法详解
2020/03/30 Python
python爬虫用mongodb的理由
2020/07/28 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
播音主持专业个人自我评价
2014/01/09 职场文书
2014年社区植树节活动方案
2014/02/28 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
迟到检讨书
2015/01/26 职场文书
商务考察邀请函模板
2015/02/02 职场文书
2015年教学工作总结
2015/04/02 职场文书
病假条格式范文
2015/08/17 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
详解Python中*args和**kwargs的使用
2022/04/07 Python