之前在某本书上看到一个程序,可以通过 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 秒钟的键盘事件ÿ