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

如何在Python中检测Mb4/X1按键是否处于按住状态?

检测Mb4/X1按键按住状态的解决方案

Windows平台(pywin32)

借助Windows系统API直接查询按键实时状态,可精准识别X1按键的按住状态:

  1. 安装依赖:
pip install pywin32
  1. 示例代码:
import win32api
import time

# X1按键的虚拟键码为0x05
X1_VK_CODE = 0x05

def check_x1_held():
    # GetAsyncKeyState返回值的最高位为1时,表示按键处于按住状态
    return (win32api.GetAsyncKeyState(X1_VK_CODE) & 0x8000) != 0

try:
    while True:
        status = "按住中" if check_x1_held() else "未按住"
        print(f"X1按键状态:{status}", end="\r")
        time.sleep(0.1)
except KeyboardInterrupt:
    print("\n程序终止")

Linux平台(evdev)

通过读取系统输入设备的实时状态来检测按键按住:

  1. 安装依赖:
pip install evdev
  1. 示例代码:
from evdev import InputDevice, ecodes
import time

# 替换为你的鼠标设备路径,可通过`ls /dev/input/event*`查看并测试
mouse_device = InputDevice('/dev/input/event3')

def check_x1_held():
    # KEY_X1对应X1按键,通过active_keys()获取当前所有按住的键
    return ecodes.KEY_X1 in mouse_device.active_keys()

try:
    while True:
        status = "按住中" if check_x1_held() else "未按住"
        print(f"X1按键状态:{status}", end="\r")
        time.sleep(0.1)
except KeyboardInterrupt:
    print("\n程序终止")
finally:
    mouse_device.close()

补充说明

  • keyboard库也可尝试通过扫描码检测,但不同设备的X1扫描码可能不一致,稳定性不如系统级API。若要尝试,可使用keyboard.is_pressed(scancode=你的扫描码),扫描码可通过keyboard.record()录制按键获取。
  • 上述方案均能实时检测按键的按住状态,而非仅触发按下/松开事件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:01:11