简介
键盘输入自动化与事件处理,无论是用于应用测试,还是创建自定义脚本和实用工具,都是至关重要的环节。当需要程序化地按下按键、响应输入或创建专属热键时,Python 提供了一个出色的库——keyboard。
keyboard 是一个功能强大的跨平台工具,允许你在操作系统层面控制键盘。它既能作为事件监听器,也能作为事件生成器:既可以拦截键盘输入,也可以模拟键盘操作。
本文将深入讲解 keyboard 库,从安装到高级应用场景,涵盖宏录制、全局热键、日志记录以及组合键处理等内容。
安装与环境要求
通过 pip 即可安装该库:
pip install keyboard
系统要求
Windows: 无需额外配置,开箱即用。
Linux: 捕获全局键盘事件需要 root 权限。本地使用时,可通过 sudo 运行。
macOS: 功能部分受限,需要在安全设置中授予额外权限。必须为辅助功能提供访问权限。
核心功能概览
keyboard 库提供了丰富的键盘操作功能:
模拟按键
程序化地模拟按键操作,适用于自动化重复性任务。
键盘事件监听
实时追踪按键事件,创建自定义的事件处理器。
创建热键
注册全局组合键,快速调用特定功能。
宏录制与回放
录制按键序列,并支持后续回放。
基础按键模拟
输入文本
import keyboard
# 简单文本输入
keyboard.write("Hello, world!")
# 带延迟的输入
keyboard.write("慢速输入", delay=0.1)
按下与释放按键
# 按下按键(不释放)
keyboard.press("ctrl")
# 释放按键
keyboard.release("ctrl")
# 按下并立即释放
keyboard.press_and_release("enter")
组合键
# 发送组合键
keyboard.send("ctrl+c")
keyboard.send("ctrl+shift+n")
# 另一种方式
keyboard.press("ctrl")
keyboard.press("c")
keyboard.release("c")
keyboard.release("ctrl")
热键操作
注册热键
import keyboard
def launch_notepad():
print("启动记事本!")
# 此处可添加启动应用的代码
# 注册热键
keyboard.add_hotkey("ctrl+alt+n", launch_notepad)
# 等待按下 Esc 退出
keyboard.wait("esc")
多重组合键
# 多个连续按键的组合
keyboard.add_hotkey("ctrl+alt+a, ctrl+alt+b", lambda: print("复杂组合键!"))
热键管理
# 移除特定热键
hotkey = keyboard.add_hotkey("ctrl+space", lambda: print("热键触发!"))
keyboard.remove_hotkey(hotkey)
# 清除所有热键
keyboard.clear_hotkeys()
键盘事件处理
监听按键
def on_key_press(event):
print(f"按下的键:{event.name}")
def on_key_release(event):
print