扩展库 / op

op

Windows 桌面、窗口、输入和图像捕获的 C/xlang 接口。

提供普通/GDI 截屏、窗口与进程查询、颜色/图片查找和输入操作;D3D9、D3D11、WGL 捕获需要包内对应 hook DLL。当前仅将公开调用链、ABI 与本机成功/失败路径纳入扩展库验收,底层插件在其他设备、驱动和权限环境中的完整行为由插件独立维护。当前 Windows 默认门禁的核心与公开范例独立 EXE 均通过。

主要接口

接口用途
op.create() / Op创建自动管理原生句柄的上下文
getScreenSize()、findWindow()、enumWindow()屏幕和窗口查询
context.bindWindow()、unbind()、getFrameInfo()窗口绑定与帧状态
context.getColor()、findColor()、findPic()像素与图像搜索
readInt()、writeInt()、findMemory()指定进程内存读写与扫描;需目标进程权限
getClipboard()、setClipboard()文本剪贴板
randomInt(min, max)XRT 非密码学随机数,含两端的 int64 区间;反向区间报错
delay(ms)XRT 分段等待;负数和微秒换算溢出报错

XLang 的文本参数在进入零结尾 C 接口前拒绝内嵌 NUL,不会把窗口名称、模式、文件路径或颜色条件静默截成有效前缀。C 调用方仍需传入正常的零结尾字符串。

bindWindow(hwnd, display, mouse, keypad, mode) 的显示模式仅接受 normal、gdi、dxgi、opengl、d3d9、d3d11、wgl;鼠标和键盘模式仅接受 normal 或 windows。空模式使用 normal,mode 仅允许 0。无效模式不会替换旧绑定;有效模式是否可捕获仍受设备和目标窗口限制。

xlang

import op

string screen = op.getScreenSize()
auto context = op.create()
println("screen: " + screen)
println("bound: " + string(context.isBind()))

C

包含 include/op.h。用 xop_create / xop_destroy 管理上下文;返回的独立文本结果用 xrtFree 释放。包内 release/examples/extlibs/op_c.c 与上面的 XLang 范例输出一致。

验证范围

Windows 默认门禁验证 GCC ABI、C/XLang 只读调用、文本 NUL 拒绝、随机数和等待边界、双语范例同输出,以及核心与带输出范例 AOT;后者已运行并与 C 范例同输出。-SkipAot 只用于 C/JIT 聚焦复验。窗口、hook、UTF-8 和内存专项可显式使用 -Stress;-RealGpu 才运行真实图形测试。本机曾验证 D3D9/D3D11/WGL 的有限帧路径,这不构成跨驱动、权限或长期运行认证。交互范例需显式启动,会操作桌面。