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

Windows下Python inputs库优化及Xbox指南键监听方案咨询

性能优化方案

  • 优先修复死循环空转问题:你当前的代码无任何休眠逻辑,会持续抢占CPU时间片,这是资源占用过高的核心原因,而非inputs库本身的缺陷。仅需在循环末尾添加10ms休眠,完全不会影响按键响应及时性,CPU占用可直接降至1%以内,修改后的参考代码如下:
import time

while 1:
    events = get_gamepad()
    if events:
        print(events[0].code)
        if events[0].code == 'START' :
            ScreenShot()
            # 可选添加200ms消抖,避免单次按键触发多次截图
            time.sleep(0.2)
    time.sleep(0.01)
  • 如需进一步降低开销,可替换inputs库为XInput-Python:该库直接调用Windows原生XInput接口,没有跨平台兼容的额外封装开销,资源占用更低,参考实现如下:
import time
import XInput

# 0对应系统识别的第一个手柄
CONTROLLER_ID = 0

while 1:
    if XInput.get_connected()[CONTROLLER_ID]:
        state = XInput.get_state(CONTROLLER_ID)
        # 检测START键按下
        if state.Gamepad.wButtons & XInput.XINPUT_GAMEPAD_START:
            ScreenShot()
            time.sleep(0.2)
    time.sleep(0.01)

Xbox指南键监听方案

  • 低成本实现方案:打开Windows自带的「Xbox 配件」应用,选中已连接的Xbox手柄,进入按键自定义设置页,将指南键绑定到系统无占用的组合快捷键(例如Ctrl+Alt+F12),之后直接使用你已熟练使用的pynput库监听该快捷键即可,无需处理手柄底层输入逻辑,零额外运行开销。
  • 原生代码监听方案:标准XInput接口默认不会返回指南键的触发状态,你可以通过pywin32库调用Windows RawInput原始输入接口,读取手柄的HID原始报告实现监听,指南键对应的按键位掩码为0x0400,可直接从HID报告的按键字段中读取判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:06:00