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

pyautogui按键操作对desmume模拟器无效果该如何解决

问题原因

DeSmuME等游戏模拟器通常直接调用底层输入接口(如DirectInput、Raw Input)处理按键,pyautogui默认发送的普通虚拟按键事件不会被这类接口捕获,这就是按键在Chrome等普通软件生效、但在模拟器中无效的核心原因。

可行解决方案
  • 方案1:调整DeSmuME输入设置
    打开DeSmuME的 设置 > 控制设置,取消勾选 使用Raw Input 或者 独占输入模式 相关选项,保存后重新运行脚本测试。
  • 方案2:使用更底层的按键发送库替换pyautogui
    优先用pydirectinput库,这个库专门针对游戏/模拟器场景优化,直接调用DirectInput接口发送按键,替换方式非常简单:
    首先安装库:pip install pydirectinput
    然后修改代码即可:
    import pyautogui
    import pydirectinput
    import time
    print("Hello world")
    pyautogui.click(1239, 1070) # 打开desmume
    time.sleep(1)
    pyautogui.click(1093, 250) # 打开ROM选择界面
    pyautogui.click(1135, 263) # 打开目标ROM
    time.sleep(10) # 等待ROM加载完成
    # 把pyautogui.press换成pydirectinput.press即可
    pydirectinput.press("k")
    
    如果运行后仍无响应,可以在pydirectinput.press("k")前增加一行点击模拟器窗口的代码,确保窗口处于前台激活状态。
  • 方案3:确认权限匹配
    如果你的DeSmuME是用管理员权限运行的,PyCharm/你的脚本也需要用管理员权限启动,否则发送的输入事件会被系统权限拦截,无法传递到模拟器进程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:51:00