当前位置: 首页 > news >正文

Python 之 keyboard

keyboard 库简介

Python 的 keyboard 库是一个用于模拟和控制键盘输入的轻量级工具,支持按键监听、组合键触发和文本输入等功能。它跨平台支持 Windows、Linux 和 macOS,常用于自动化脚本或测试场景。

安装方法

通过 pip 安装最新版本:

pip install keyboard

基础功能

  • 按键监听:实时捕获键盘事件。
  • 模拟输入:发送虚拟按键或文本。
  • 热键绑定:自定义组合键触发动作。

实例一:监听按键并打印

以下代码监听按键并输出按下的键名:

import keyboarddef on_key_press(event):print(f"Pressed: {event.name}")keyboard.on_press(on_key_press)
keyboard.wait("esc")  # 按ESC退出监听

说明

  • on_press 回调函数接收事件对象,包含 name(键名)和 scan_code 等属性。
  • wait 阻塞线程直到触发指定按键。

实例二:模拟快捷键操作

自动按下 Win+R 打开运行窗口并输入命令:

import keyboard
import timekeyboard.press("win")
keyboard.press("r")
keyboard.release("r")
keyboard.release("win")
time.sleep(0.5)
keyboard.write("cmd\n")  # \n 表示回车

关键点

  • pressrelease 需成对调用以避免卡键。
  • write 直接输入字符串,支持特殊字符如 \t(制表符)。

实例三:全局热键触发任务

定义 Ctrl+Alt+P 组合键执行自定义函数:

import keyboarddef show_message():print("Hotkey triggered!")keyboard.add_hotkey("ctrl+alt+p", show_message)
keyboard.wait("esc")  # 持续监听直至ESC按下

注意事项

  • 热键字符串格式为小写,+ 连接组合键。
  • 使用 remove_hotkey 可注销已绑定的热键。

常见问题解决

  1. 权限问题(Linux/macOS): 需要以管理员权限运行脚本,或使用 sudo 执行。

  2. 事件阻塞: 长时间监听时建议单独开线程,避免阻塞主程序。

  3. 键名映射: 特殊键需使用标准名称,如 "ctrl""space",完整列表参考官方文档。


高级应用

记录并回放按键序列

recorded = keyboard.record(until="esc")  # 录制到ESC按下
keyboard.play(recorded)  # 回放

阻塞特定按键

keyboard.block_key("a")  # 阻止字母A的输入


通过这三个实例和扩展功能,keyboard 库能够满足从基础监听、自动化操作到复杂热键管理的多样化需求。实际开发中建议结合多线程或异步框架提升响应效率。

http://www.lryc.cn/news/599808.html

相关文章:

  • 详解软件需求中的外部接口需求
  • 网络安全入门第一课:信息收集实战手册(3)
  • 芯显15寸工控液晶屏RV150X0M-N10产品资料详情
  • 高德地图 loca 实现点线的显示和点击
  • Ping32:企业数据安全的智能护盾
  • C++中使用Essentia实现STFT/ISTFT
  • C++中new和delete的多重面孔:operator new、new operator与placement new解析
  • 机器学习-SVM支持向量机
  • Zookeeper学习专栏(十):核心流程剖析之服务启动、请求处理与选举协议
  • 【Linux】进程切换与优先级
  • Metaspace耗尽导致OOM问题
  • 【运维自动化-标准运维】各类全局变量使用说明(下)
  • 伯俊科技× OB Cloud:零售业落地AI的“三步走”渐进式发展实践
  • 企业微信H5应用OAuth2登录,企业微信授权登录
  • 国产DevOps平台Gitee:如何重塑中国企业研发效能新格局
  • 如何在 Ubuntu 24.04 或 22.04 上安装和使用 GDebi
  • Qt 反射机制与动态属性系统
  • UserWarning: Workbook contains no default style, apply openpyxl‘s default warn
  • ReAct Agent(LangGraph实现)
  • 04-netty基础-Reactor三种模型
  • 无需 Root 关闭联网验证 随意修改手机名称(适用于OPPO、一加、真我)
  • 【笔记】Handy Multi-Agent Tutorial 第四章: CAMEL框架下的RAG应用 (简介)
  • RocketMQ 5.3.0 ARM64 架构安装部署指南
  • 详解FreeRTOS开发过程(八)-- 时间标志
  • 【电赛学习笔记】MaxiCAM 项目实践——与单片机的串口通信
  • ESP32学习笔记_Components(1)——使用LED Strip组件点亮LED灯带
  • Yolov8/Yolov11实例分割训练自有数据集
  • AWS WebRTC:我们的业务模式
  • 壁纸管理 API 文档
  • MybatisPlus-17.扩展功能-JSON处理器