如何在终端输入场景外将键盘输入替换为指定文本?
实现全局输入“abcd”自动替换为“hello”
可以借助pynput库实现全局键盘监听与替换,具体步骤如下:
- 安装依赖库
执行以下命令安装pynput:
pip install pynput
- 核心实现代码
from pynput.keyboard import Listener, Controller, Key keyboard = Controller() input_buffer = [] def on_press(key): global input_buffer try: # 记录普通字符输入 char = key.char input_buffer.append(char) # 检查缓冲区末尾是否匹配目标字符串 if ''.join(input_buffer[-4:]) == 'abcd': # 删除输入的"abcd"(按四次退格键) for _ in range(4): keyboard.press(Key.backspace) keyboard.release(Key.backspace) # 输入替换后的内容 keyboard.type('hello') # 清空缓冲区避免重复匹配 input_buffer = [] except AttributeError: # 处理特殊按键(如回车、空格等),清空缓冲区 if key not in (Key.shift, Key.shift_r, Key.ctrl, Key.ctrl_r, Key.alt, Key.alt_r): input_buffer = [] # 启动监听 with Listener(on_press=on_press) as listener: listener.join()
- 代码说明
- 维护一个
input_buffer列表记录连续输入的字符 - 每次按键时,普通字符会被加入缓冲区,随后检查最后4个字符是否匹配“abcd”
- 匹配成功后,模拟按四次退格键删除原输入,再自动输入“hello”
- 遇到非修饰类特殊按键时清空缓冲区,避免干扰后续匹配逻辑
- 注意事项
- 运行脚本需要系统权限(全局键盘监听需授权)
- 请勿在输入敏感信息(如密码)时运行该脚本,避免意外替换或输入记录
内容的提问来源于stack exchange,提问作者useryz
相关产品推荐
相关产品推荐

