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 修改文件指定行的方法
May 15 Python
python写xml文件的操作实例
Oct 05 Python
Python中使用md5sum检查目录中相同文件代码分享
Feb 02 Python
详解Django缓存处理中Vary头部的使用
Jul 24 Python
Python脚本实现12306火车票查询系统
Sep 30 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
Python实现的视频播放器功能完整示例
Feb 01 Python
Python最小二乘法矩阵
Jan 02 Python
基于python 将列表作为参数传入函数时的测试与理解
Jun 05 Python
python openCV自制绘画板
Oct 27 Python
anaconda python3.8安装后降级
Jun 11 Python
详解Python类和对象内容
Jun 22 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实现异步调用的4种方法
2016/03/14 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
html下载本地
2006/06/19 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
python PyTorch预训练示例
2018/02/11 Python
python使用pygame框架实现推箱子游戏
2018/11/20 Python
python树的同构学习笔记
2019/09/14 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
美国牛仔品牌:True Religion
2018/11/16 全球购物
火山动力Java笔试题
2014/06/26 面试题
土木工程毕业生自荐信
2013/09/21 职场文书
人事主管的岗位职责
2013/11/16 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
秘书英文求职信
2014/04/16 职场文书
大型会议策划方案
2014/05/17 职场文书
授权委托书公证
2014/09/14 职场文书
服务员态度差检讨书
2014/10/28 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS