之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库。

后来几经尝试,始终不能成功运行。原来它只支持 Python2 和 32 位的 Windows 系统。。。Excuse me?

于是在网上查找可行的替代方案,比如 pyHook 。呃,不合胃口。安装比较繁琐(有依赖库且不能通过 pip 命令安装),只支持 Windows 系统,况且又是十年前就没再更新的项目。。。看了下函数调用也算不上简洁直观。

后来又多番搜索,终于找到了一个名为keyboard的 Python 库,可以绑定全局事件、录制及模拟键盘输入、设置热键等。

尤其是安装和使用足够简单,比较合我的心意(毕竟 Github 上将近 1.5K 的小星星)。

一、特性

全局范围内的键盘事件绑定。即程序可以后台运行,捕捉其他软件下的按键动作。

跨平台,支持 Windows 、Linux 以及 MacOS 系统。支持 Python2 和 Python3 。

纯 Python 代码,无需编译 C 语言模块。无依赖库,安装简单(只是复制文件就可以)。

通过独立的线程捕捉事件,不阻塞主程序的运行。

很详细的文档,参见项目主页的 README 。

其实我真的有点感觉,这才是我心目中比较“现代”的工具。

二、录制及模拟按键动作

就像前面提到的,安装 keyboard 的流程非常简单,无需考虑任何兼容性或者依赖问题,只需要一条简短的命令:

$ pip install keyboard

可以使用下面的代码录制 10 秒钟的键盘事件,并将其回放一遍(即重复按下之前操作的按键):

import keyboard

import time

keyboard.start_recording()

time.sleep(10)

events = keyboard.stop_recording()

keyboard.replay(events)

可以使用如下代码制作一个简单的 “键盘录制器” (打印输出全局范围内的按键动作,并将按键顺序保存在文本文件中):

import keyboard

def print_pressed_keys(e):

line = ', '.join(str(code) for code in keyboard._pressed_events)

print(line)

with open('keylogger.txt', 'a+') as f:

f.write(line + '\n')

keyboard.hook(print_pressed_keys)

keyboard.wait()

PS:上述代码中的 code 并不是对应按键的 ASCII 码,而是根据键盘布局为按键指定的数值(如 a 键为 30,b 键为 42 等等),可以通过自行测试确认具体的对应关系。

如同时按下两个或多个按键,则上述程序会以 code, code... 的形式输出。

三、热键捕获及绑定

可以使用如下代码录制热键并为该热键绑定上特定的触发事件:

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.")

其他的使用方式就不再一一列举了,可以参考 keyboard 项目的 Github 主页 。

几种常见的使用示例也已经包含在项目代码的 examples 目录下。

以上就是python 偷懒技巧——使用 keyboard 录制键盘事件的详细内容,更多关于python keyboard 录制键盘事件的资料请关注脚本之家其它相关文章!

python编程midi键盘按键_python 偷懒技巧——使用 keyboard 录制键盘事件相关推荐

  1. python keyboard方法_python 偷懒技巧——使用 keyboard 录制键盘事件

    之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库. 后来几经尝试,始终不能成功运行.原来它只支持 Python2 和 32 位的 Window ...

  2. python keyboard方法_python 偷懒技巧――使用 keyboard 录制键盘事件

    之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库. 后来几经尝试,始终不能成功运行.原来它只支持 Python2 和 32 位的 Window ...

  3. python编程midi键盘按键错乱_键盘按键错乱有以下几种相应的解决办法

    电脑会出现的问题有很多,有的时候或许是主机有问题,有的时候或许是系统有问题,有的时候又或许是屏幕有问题.但这些问题都不是主编我今天要说的.小编我今天要说的呢,是关于键盘的,那就是当键盘按键错乱时,我们 ...

  4. python编程midi键盘按键错乱_键盘按键错乱超简单解决教程

    在使用台式电脑和笔记本电脑的时候会遇到键盘错乱的问题,比如我们按J,K键确出现数字键,完全的错了,这是怎么回事呢,其实原因有几种情况,下面就教大家来解决. 方法一.按键切换 键盘字母数字多功能的数字键 ...

  5. python编程midi键盘按键错乱_键盘按键错乱怎么办?

    展开全部 利用360修复键盘按键错乱的方法: 一.打开360杀毒,并进入电脑门诊: 二.在搜索62616964757a686964616fe58685e5aeb931333365633937框中输入键 ...

  6. python编程中的运算_Python编程中的四大运算法则

    接触过编程的人都知道,编程中的数学知识无处不在,通过数学建模能够解决我们实际生活中的很多问题.当然这并不是说必须要成为一名数学大神才能学编程,但掌握数学知识在编程中的表达方法却是很有必要的,今天南京小 ...

  7. python怎么运行yaml配置文件_python的技巧和方法你了解多少?

    脚本之家 你与百万开发者在一起 源 / python学习开发           文 / cxa 学了这些你的python代码将会改善,你的技巧将会提高. 1. 路径操作 比起os模块的path方法, ...

  8. 学习 Python 编程的 11 个受用终身的技巧

    很多人会私信我文我 学习 Python 的最佳方法是什么 ? 我相信学习任何编程语言的第一步是确保你了解学习方法.掌握学习方法是计算机编程中最关键的技能.随着语言的发展.库的创建和工具的升级.知道如何 ...

  9. python编程第四版_Python编程 第4版 影印版 上下册

    内容概要 本书是由Mark Lutz编写的<Python编程(影印版第4版)>.<Python编程(影印版第4版)>的内容包括: Python快速入门:搭建一个简单的例子,包括 ...

最新文章

  1. FFmpeg中libavutil库简介及测试代码
  2. 【剑仙教程】易语言的结构体。自定义数据类型。
  3. ecplise常用快捷键
  4. ACM 博弈 只是总结 ( ZZ自奋斗哥 )
  5. 深入理解构造函数和原型链
  6. Abp vnext Web应用程序开发教程 8 —— 作者:应用程序层
  7. 手机python 3.8解释器_不看后悔!Python 3.8 新功能大揭秘
  8. 复利计算1.0-2.0-3.0
  9. 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》影评:生而孤独,从不认命...
  10. PAIP.MYSQL数据库比较VC313.TXT
  11. 普元EOS中如何往Session的UserObject中设置自定义属性
  12. FastStone Capture—截图功能
  13. ABAP MIR7预制凭证BAPI
  14. 一文快速入门三维人脸重建学习
  15. 关于十六进制发送和显示(VS上位机和下位机)
  16. 你的登录接口真的安全吗?
  17. strcmp, strncmp和memcmp的区别
  18. Polygon zkEVM的pil-stark Fibonacci状态机初体验
  19. archlinux什么桌面好_Archlinux的桌面环境配置
  20. mupdf PDF查看器使用教程

热门文章

  1. 【20220629】【信号处理】(平稳随机信号)自相关函数性质的证明过程
  2. 堆排序算法(java实现)
  3. window10如何开启telnet
  4. 为什么要用RSocket
  5. 什么才算好的监控系统?
  6. 容器编排工具与 Kuberneters
  7. 企业微信支付收款码申请开通方法
  8. 非常好的视频类软件下载与安装教程,非常棒
  9. [计算机网络]HTTP、UDP、TCP协议
  10. 水源热泵系统的优点和缺点有哪些?