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

使用Pynput实现快捷键自动输入文本时字符丢失问题求助

解决Pynput热键触发后输入文本异常的问题

问题原因

触发<ctrl>+<alt>+h热键时,Ctrl和Alt键处于按下状态,直接调用k.type()会导致输入受修饰键干扰——比如小写字母会被修饰键组合成系统快捷键,空格也会因为修饰键的存在无法正常输出,最终出现只输入大写字符HELO的情况。

修正代码

from pynput import keyboard
from pynput.keyboard import Key, Controller
import time

k = Controller()

def on_activate_h():
    # 释放按住的Ctrl和Alt键
    for key in [Key.ctrl, Key.alt]:
        if k.is_pressed(key):
            k.release(key)
    # 短暂延迟确保按键状态同步
    time.sleep(0.05)
    word = "HELlO"
    k.type(word)

with keyboard.GlobalHotKeys({
        '<ctrl>+<alt>+h': on_activate_h,
        }) as h:
    h.join()

说明

  • 主动释放修饰键:必须先释放触发热键时按住的Ctrl和Alt,否则模拟输入会受这些键的干扰,导致字符输出异常。
  • 延迟作用:给系统一点时间处理按键释放操作,避免输入时仍残留修饰键的按下状态。
  • 空格输入:现在可以直接在word变量中添加空格,比如word = "HELlO 测试",空格会正常输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:46:00