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 Web框架Pylons中使用MongoDB的例子
Dec 03 Python
python中二维阵列的变换实例
Oct 09 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
运行django项目指定IP和端口的方法
May 14 Python
快速解决pandas.read_csv()乱码的问题
Jun 15 Python
浅析Python函数式编程
Oct 06 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
Python基础知识点 初识Python.md
May 14 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
Python Matplotlib绘制两个Y轴图像
Apr 13 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
PHPMyAdmin 快速配置方法
2009/05/11 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
Python的Django框架中的Context使用
2015/07/15 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
基于python绘制科赫雪花
2018/06/22 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
社会实践自我鉴定
2013/11/07 职场文书
运动会通讯稿500字
2014/02/20 职场文书
遗体告别仪式主持词
2014/03/20 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
获奖感言范文
2015/07/31 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
Java实现房屋出租系统详解
2021/10/05 Java/Android