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 文件和输入输出小结
Oct 09 Python
使用Python中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
python中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
Python Flask-web表单使用详解
Nov 18 Python
Django 路由控制的实现
Jul 17 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 Python
python3代码输出嵌套式对象实例详解
Dec 03 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
python单例模式的应用场景实例讲解
Feb 24 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
简单的页面缓冲技术
2006/10/09 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
玩转python爬虫之正则表达式
2016/02/17 Python
python实现电子产品商店
2019/02/26 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
OpenCV 边缘检测
2019/07/10 Python
python如何实现单链表的反转
2020/02/10 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
浅析python实现动态规划背包问题
2020/12/31 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
应届毕业生个人自我评价
2013/09/20 职场文书
艺术设计专业个人求职信
2013/09/21 职场文书
总经理岗位职责
2013/11/09 职场文书
考试不及格检讨书
2014/01/09 职场文书
满月酒答谢词
2014/01/14 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
2014春晚主持词
2014/03/25 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
预备党员个人总结
2015/02/14 职场文书
交通肇事罪辩护词
2015/05/21 职场文书