当前位置: 首页 > 编程笔记 >

python利用 keyboard 库记录键盘事件

薄腾
2023-03-14
本文向大家介绍python利用 keyboard 库记录键盘事件,包括了python利用 keyboard 库记录键盘事件的使用技巧和注意事项,需要的朋友参考一下

今天也不知道是想了什么,突然就想要试试看我有效击键时的手速到底有多快。为此,需要记录下来击键的记录。于是找到了 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 记录键盘事件的资料请关注小牛知识库其它相关文章!

 类似资料:
  • import { Keyboard } from 'feui'; components: { [Keyboard.name]: Keyboard }, data() { return { showKeyboard1: false, showKeyboard2: false } }, methods:{ onInput(val){ co

  • Keyboard 键盘 平台差异说明 App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序 √ √ √ √ √ √ √ 基本使用 通过mode参数定义键盘的类型,v-model绑定一个值为布尔值的变量控制键盘的弹出与收起: mode = number (默认值)为数字键盘,此时顶部工具条中间的提示文字为"数字键盘" mode = car 为汽车键盘,此时顶部工具条中间的提示文

  • 使用指南 组件介绍 数字键盘组件 引入方式 import { KeyBoard } from 'feart'; export default { components: { 'fe-key-board': KeyBoard, }, data() { return { keyboard: '' }; }, methods: { hid

  • 此示例侦听来自串行端口的字节。 收到后,电路板会将击键发送回计算机。 发送的按键比接收的按键高一个,因此如果从串行监视器发送“a”,您将从连接到计算机的板上收到“b”。 “1”将返回“2”,依此类推。 Warning - 使用Keyboard.print()命令时,Leonardo,Micro或Due板接管计算机的键盘。 为确保在使用此功能运行草图时不会失去对计算机的控制,请在调用Keyboard

  • 在此示例中,按下按钮时,文本字符串将作为键盘输入发送到计算机。 该字符串报告按下按钮的次数。 一旦你对Leonardo进行了编程和接线,打开你喜欢的文本编辑器来查看结果。 Warning - 使用Keyboard.print()命令时,Arduino将接管计算机的键盘。 为确保在使用此功能运行草图时不会失去对计算机的控制,请在调用Keyboard.print()之前设置可靠的控制系统。 该草图包括

  • 当ARDUINO UNO上的引脚2接地时,此示例使用键盘库将您从计算机上的用户会话中注销。 草图同时按两个或三个键的顺序模拟按键,并在短暂延迟后释放它们。 Warning - 使用Keyboard.print()命令时,Arduino将接管计算机的键盘。 为确保在使用此功能运行草图时不会失去对计算机的控制,请在调用Keyboard.print()之前设置可靠的控制系统。 此草图设计为仅在将引脚拉到