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

如何实现识别屏幕字母图片后自动按下对应键盘按键

实现图片检测与对应按键自动触发

修改后的完整代码

import pyautogui

def justAnObserver():
    # 字母图片列表
    listOfLetterImages = ['A.png','B.png','C.png','D.png','E.png','F.png','G.png','H.png','I.png','J.png','K.png','L.png','M.png','N.png','O.png','P.png','Q.png','R.png','S.png','T.png','U.png','V.png','W.png','X.png','Y.png','Z.png']
    # 指定检测区域
    detect_region = (350, 337, 98, 103)

    while True:
        for img_path in listOfLetterImages:
            try:
                # 在指定区域查找图片
                if pyautogui.locateOnScreen(img_path, region=detect_region) is not None:
                    # 从文件名提取对应按键(比如A.png提取'A')
                    target_key = img_path.split('.')[0]
                    # 模拟按下对应按键
                    pyautogui.press(target_key)
                    print(f"检测到{target_key},已按下对应按键")
                    # 可选:检测到一个后暂停一小段时间,避免重复触发
                    pyautogui.sleep(0.5)
                    break
            except pyautogui.ImageNotFoundException:
                # 图片未找到时继续循环检测下一个
                continue
            except Exception as e:
                # 捕获其他异常并打印,方便调试
                print(f"发生错误: {e}")
                continue

if __name__ == "__main__":
    justAnObserver()

关键改动说明

  • 按键映射简化:直接从图片文件名提取对应按键字符,无需手动维护额外的映射表,减少重复代码。
  • 修正语法错误:修复原代码中if块内语句的缩进问题,避免运行报错。
  • 优化循环逻辑:简化嵌套while结构,改为单循环持续检测,更符合实时监控的需求;检测到目标后执行按键操作,还可通过sleep避免短时间内重复触发。
  • 精准异常处理:将异常捕获范围缩小,只处理ImageNotFoundException(图片未找到的正常情况),其他异常单独捕获打印,便于调试问题。
  • 代码结构优化:提取检测区域为单独变量,后续修改区域参数更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:45:18