Windows 消息模拟、GDI、DX、OpenGL 截图、图像搜索、文字识别 (OCR)
OP(Operator & Open)是一个面向 Windows 的自动化插件。它把窗口查找、后台绑定、截图、键鼠输入、找色找图、OCR、OpenCV、YOLO HTTP 检测和进程内存读写放在同一套接口里,方便脚本工具和桌面自动化程序直接调用。
核心代码使用 C++ 实现,提供 COM、C API、Python 和 Go 绑定,支持 x86/x64。截图后端覆盖普通窗口、GDI、DXGI、WGC、DirectX Hook、OpenGL 和 OpenGL ES;字库、图片模板可以从本地文件加载,也可以从内存加载,适合把资源随程序一起打包。
OCR 目前有两条路线:固定字体场景使用点阵字库,兼容 OP 二进制字库和大漠文本点阵字库;通用 OCR 可以接入独立 HTTP 服务 op_ocr_engine,由 Tesseract、PaddleOCR 等后端完成识别。
YOLO 检测同样走外部 HTTP 服务模式。OP 负责截图、读图和请求封装,模型推理由独立服务完成。接口格式见 YOLO HTTP 检测,仓库里也放了一个最小服务样例:tools/op_yolo_engine.py。
…
下载 Release 后,根据宿主程序位数使用对应 DLL。COM 方式需要注册:
# 32 位宿主程序
regsvr32 .\op_x86.dll
# 64 位宿主程序
regsvr32 .\op_x64.dll
Python 通过 COM 调用:
from win32com.client import Dispatch
op = Dispatch("op.opsoft")
print("op version:", op.Ver())
免注册调用请看 Wiki:
op-plugins wheel 面向直接使用 pyop 的用户,支持 Python 3.9-3.12,提供 win32 和 win_amd64 两种架构:
pip install op-plugins
from pyop import Op
op = Op()
print("op version:", op.Ver())
如果从 Release 安装指定 wheel,把 和 换成实际文件名:
pip install https://github.com/WallBreaker2/op/releases/download//.whl
注意:
win_amd64 wheel,32 位 Python 使用 win32 wheelbindings/python 是基于 ctypes 的 C API 包装,和 SWIG 版 pyop 相互独立,适合需要直接调用 op_c_api_*.dll 的场景验证安装:
python -c "from pyop import Op; print(Op().Ver())"
环境要求:
推荐使用根目录 build.py:
# 当前 CI 使用的 Release x64 构建
python build.py -g vs2026 -t Release -a x64
# 构建 x86
python build.py -g vs2026 -t Release -a x86
# Debug
python build.py -g vs2026 -t Debug -a x64
# 如果本机是 VS2022,可以把 -g 改成 vs2022
python build.py -g vs2022 -t Release -a x64
Release 产物会安装到 bin/x86 或 bin/x64。发布包通常包含:
op_x86.dll / op_x64.dll
op_c_api_x86.dll / op_c_api_x64.dll
tools.dll
_pyop.pyd
pyop.py
lib/op_c_api_x86.lib / lib/op_c_api_x64.lib
本地构建 wheel:
pip install scikit-build-core setuptools-scm
.\scripts\build_wheel.ps1
如果手动构建,先跑一次 build.py 完成依赖引导:
python build.py -g vs2026 -t Release -a x64
pip wheel . --no-deps -w wheelhouse
743710486、27872381暂无开放 Issues,或尚未同步最近议题。