You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用Python打造类谷歌输入法离线应用:按键映射与输入模拟

实现自定义离线按键映射输入法的方案

要实现这个需求,你可以借助Python的pynput库来监听全局键盘事件,并模拟替换后的字符输入,以下是具体实现步骤:

1. 安装依赖库

首先安装pynput,它能同时处理键盘监听和模拟输入:

pip install pynput

2. 核心实现思路

  • 定义字符映射字典:将需要替换的按键和目标字符一一对应
  • 监听全局键盘按下事件:捕获用户按下的每一个按键
  • 拦截原按键行为:如果按键在映射表中,阻止原按键输入
  • 模拟输入目标字符:用虚拟键盘发送替换后的字符

3. 完整代码示例

from pynput.keyboard import Key, Listener, Controller

# 自定义字符映射表,根据需求修改
KEY_MAPPING = {
    'a': 'm',
    'b': 'd',
    'c': 'g',
    'e': 'u',
    # 可添加更多按键映射
}

keyboard = Controller()

def on_press(key):
    try:
        # 处理普通字符按键
        pressed_key = key.char.lower()
        if pressed_key in KEY_MAPPING:
            # 阻止原按键的默认输入
            return False
    except AttributeError:
        # 处理特殊按键(如回车、退格等),此处保留原行为
        pass

def on_release(key):
    try:
        pressed_key = key.char.lower()
        if pressed_key in KEY_MAPPING:
            # 模拟输入映射后的字符
            keyboard.type(KEY_MAPPING[pressed_key])
    except AttributeError:
        # 按ESC键退出监听程序
        if key == Key.esc:
            return False

# 启动监听
with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

4. 关键说明与注意事项

  • 权限要求:Windows/Linux运行时需管理员权限,macOS需在「系统设置-隐私与安全性」中允许终端/IDE的键盘监听权限
  • 特殊按键处理:代码默认保留回车、退格等特殊键的原行为,如需修改可在on_press和on_release中扩展逻辑
  • 大小写适配:代码统一将按键转为小写,若需区分大小写,可调整pressed_key = key.char并修改映射表
  • 全局监听特性:程序会监听所有应用的键盘事件,切换到记事本等输入框即可看到替换效果

内容的提问来源于stack exchange,提问作者Mani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:27:08