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数据结构之二叉树的统计与转换实例
Apr 29 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
一百多行python代码实现抢票助手
Sep 25 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
Python subprocess库的使用详解
Oct 26 Python
Python列表(List)知识点总结
Feb 18 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
wxPython实现文本框基础组件
Nov 18 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
Django models文件模型变更错误解决
May 11 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
Python WSGI 规范简介
Apr 11 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源码分析之变量的存储过程分解
2014/07/03 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Python基于多线程实现抓取数据存入数据库的方法
2018/06/22 Python
django解决跨域请求的问题详解
2019/01/20 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
浅谈python3中input输入的使用
2019/08/02 Python
python opencv 检测移动物体并截图保存实例
2020/03/10 Python
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
特教教师先进事迹
2014/05/21 职场文书
在校实习生求职信
2014/06/18 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
冰雪公主观后感
2015/06/16 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers