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

Python眨眼检测器触发的pyautogui按键在游戏中无法识别问题求助

游戏无法识别pyautogui模拟按键的解决方案

问题原因

pyautogui默认调用的是Windows系统的普通消息机制模拟按键,大多数游戏(尤其是采用DirectInput输入框架、带反作弊机制的游戏)会过滤这类非硬件触发的模拟输入,所以只能在记事本、浏览器这类普通应用里生效,游戏内无法识别。

修复方案

方案1:替换为支持DirectInput的pydirectinput库(推荐,改动最小)

这是适配绝大多数无内核级反作弊游戏的最优方案,SCP:CB这类独立游戏完全适用:

  • 第一步:安装依赖
    执行命令:pip install pydirectinput
  • 第二步:修改代码
    1. 把开头的import pyautogui替换为:
    import pydirectinput
    # 可选:关闭pydirectinput的默认延迟,降低操作延迟
    pydirectinput.PAUSE = 0
    
    1. 把眨眼触发的pyautogui.press("space")替换为:
    pydirectinput.press("space")
    
  • 第三步:运行注意事项
    一定要以管理员身份运行你的Python脚本,否则游戏进程权限高于脚本,会无法收到模拟输入。

方案2:底层调用SendInput模拟硬件按键(适合pydirectinput无效的场景)

如果方案1无效,可以直接用ctypes调用Windows底层的SendInput接口模拟硬件级按键,代码示例如下,你可以替换原来的按键触发部分:

import ctypes
from ctypes import wintypes

user32 = ctypes.WinDLL('user32', use_last_error=True)

# 按键常量
VK_SPACE = 0x20
KEYEVENTF_SCANCODE = 0x0008
KEYEVENTF_KEYUP = 0x0002

class INPUT(ctypes.Structure):
    _fields_ = [
        ("type", wintypes.DWORD),
        ("wScan", wintypes.WORD),
        ("wVk", wintypes.WORD),
        ("dwFlags", wintypes.DWORD),
        ("time", wintypes.DWORD),
        ("dwExtraInfo", ctypes.POINTER(ctypes.c_ulong))
    ]

def press_space():
    # 按下空格
    input_down = INPUT()
    input_down.type = 1 # INPUT_KEYBOARD
    input_down.wScan = user32.MapVirtualKeyW(VK_SPACE, 0)
    input_down.dwFlags = KEYEVENTF_SCANCODE
    user32.SendInput(1, ctypes.byref(input_down), ctypes.sizeof(INPUT))
    # 松开空格
    input_up = INPUT()
    input_up.type = 1
    input_up.wScan = user32.MapVirtualKeyW(VK_SPACE, 0)
    input_up.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP
    user32.SendInput(1, ctypes.byref(input_up), ctypes.sizeof(INPUT))

触发按键时调用press_space()即可,同样需要管理员权限运行。

额外优化建议

你当前的眨眼检测是单帧判定,很容易出现误触发,建议增加简单的防抖逻辑:

  • 新增一个计数器变量,连续2~3帧检测不到眼睛才判定为真实眨眼
  • 触发一次按键后增加0.3~0.5秒的冷却时间,避免短时间重复触发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:54:03