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

Windows环境下Python如何禁用与启用键盘输入(Valorant触发Bot开发)

解决Python鼠标点击前后禁用/启用键盘输入的问题

使用pynput库可以高效实现键盘事件的拦截与释放,适配你开发触发机器人的学习场景,以下是具体方案:

核心逻辑

  • 执行鼠标点击前,启动键盘监听器拦截输入
  • 点击操作完成后,停止监听器恢复键盘功能

完整代码示例

from pynput.mouse import Controller as MouseController
from pynput.keyboard import Listener, KeyCode
import time

# 初始化鼠标控制器
mouse = MouseController()
# 存储键盘监听器实例
keyboard_listener = None

def on_key_press(key):
    # 返回False会阻止按键事件传递到系统,实现禁用效果
    return False

def disable_keyboard_input():
    global keyboard_listener
    # 创建并启动监听器
    keyboard_listener = Listener(on_press=on_key_press)
    keyboard_listener.start()

def enable_keyboard_input():
    global keyboard_listener
    if keyboard_listener:
        # 停止监听器并释放资源
        keyboard_listener.stop()
        keyboard_listener = None

# 测试流程
if __name__ == "__main__":
    print("3秒后将禁用键盘并执行左键点击...")
    time.sleep(3)
    
    # 禁用键盘
    disable_keyboard_input()
    print("键盘已禁用,执行鼠标点击")
    mouse.click("left")
    # 根据需求添加操作延迟
    time.sleep(0.5)
    
    # 恢复键盘
    enable_keyboard_input()
    print("键盘已恢复正常")

自定义拦截规则

如果不需要禁用所有按键,仅拦截特定按键(比如游戏移动键WASD),可以修改on_key_press函数:

def on_key_press(key):
    # 定义需要拦截的按键集合
    blocked_keys = {
        KeyCode.from_char('w'),
        KeyCode.from_char('a'),
        KeyCode.from_char('s'),
        KeyCode.from_char('d')
    }
    # 仅拦截指定按键,其他按键正常传递
    if key in blocked_keys:
        return False
    return True

关键注意事项

  • 运行脚本需管理员权限,否则可能无法在游戏进程中正确拦截键盘事件
  • 确保已安装pynput:执行命令 pip install pynput
  • 若遇到监听器失效问题,检查是否有其他键盘监听程序冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:23:29