在windows和linux上钩住并模拟键盘事件

keyboard的Python项目详细描述


使用这个小python库完全控制键盘。钩子 全局事件、注册热键、模拟按键等等。

功能

  • global event hook在所有键盘上(无论 聚焦)。
  • listensend键盘事件。
  • 使用windowslinux(需要sudo),使用 实验性的os x支持(感谢@glitchassasin!).
  • pure python,没有要编译的c模块。
  • 0依赖项。安装和部署很简单,只需复制 文件夹。
  • python 2和3
  • 复杂热键支持(例如ctrl+shift+m, ctrl+space),具有 可控超时。
  • 包括高级api(例如recordplayadd_abbreviation)。
  • 将键映射为它们在布局中的实际位置,full 国际化支持(例如Ctrl+ç)。
  • 在单独的线程中自动捕获的事件,不阻止main 程序。
  • 测试和记录。
  • 不会弄坏有口音的死键(我在看着你,派胡克)。
  • 通过项目提供鼠标支持 mousepip install mouse)。

用法

安装PyPI package

pip install keyboard

或者克隆存储库(不需要安装,源文件是 足够):

git clone https://github.com/boppreh/keyboard

download and extract the zip进入 你的项目文件夹。

然后检查API docs below查看哪些特性 有空。

示例

importkeyboardkeyboard.press_and_release('shift+s, space')keyboard.write('The quick brown fox jumps over the lazy dog.')keyboard.add_hotkey('ctrl+shift+a',print,args=('triggered','hotkey'))# Press PAGE UP then PAGE DOWN to type "foobar".keyboard.add_hotkey('page up, page down',lambda:keyboard.write('foobar'))# Blocks until you press esc.keyboard.wait('esc')# Record events until 'esc' is pressed.recorded=keyboard.record(until='esc')# Then replay back at three times the speed.keyboard.play(recorded,speed_factor=3)# Type @@ then press space to replace with abbreviation.keyboard.add_abbreviation('@@','my.long.email@example.com')# Block forever, like `while True`.keyboard.wait()

已知限制:

  • 在Windows下生成的事件不报告设备ID (event.device == None)。 #21
  • Linux上的媒体密钥可能显示为无名(仅扫描代码)或不在 全部。#20
  • 密钥抑制/阻塞仅在Windows上可用。 #22
  • 为了避免依赖于x,linux部分读取原始设备文件 (/dev/input/input*)但这需要根。
  • 其他应用程序(如某些游戏)可能会注册 吞下所有关键事件。在这种情况下,keyboard将无法 报告事件。
  • 这个程序不想隐藏自己,所以不要用它 键盘记录器或在线游戏机器人。负责任。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
从Android的Chrome Java网站下载文件   java如何使用正确的语法在Oracle数据库中插入值   启动时java eclipse端口占用错误   java判断两个字符串是否“足够相似”的好指标是什么   ANT中选项无法识别的java问题   Java RMI导致“NoSuchObjectException”   java如何用txt文件中的某些单词填充JList   字符串引用另一个字符串的部分?JAVA   java识别Spring MVC DTO   java JMH注释处理器NullPointerException   java Big decimal setScale有时给出不同的值   带有JWT的java Web和Http安全配置(忽略登录路径问题)   java添加JPA非主键引用了多个实体   java树算法中两个节点之间的距离问题   java延迟与解耦体系结构建议   SWI Prolog Java jpl。PrologException查询不工作   java用不同的构造函数实例化一个类   java如何使用JDO从数据库中获取特定数量的行?