Skip to content

background

qiannian edited this page Jul 1, 2026 · 11 revisions

background

后台

接口目录

接口方法

BindWindow

绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定.

long BindWindow(hwnd,display,mouse,keypad,mode)
参数 类型 描述
hwnd int 指定的窗口句柄
display string 屏幕显示模式,取值定义如下
mouse string 鼠标仿真模式,取值定义如下
keypad string 键盘仿真模式,取值定义如下
mode int 模式,取值 0、1

display

描述
normal 正常模式,平常我们用的前台截屏模式
normal.auto 自动选择普通窗口截图方式,优先使用更合适的后台截图后端
normal.dxgi dxgi 截图模式,这个速度更快,更省 CPU
normal.wgc wgc 截图模式,支持 Windows 10 1903 及以上版本
gdi gdi 模式,用于窗口采用 GDI 方式刷新时,此模式占用 CPU 较大
gdi2 gdi2 模式,此模式兼容性较强,但是速度比 gdi 模式要慢许多
dx dx 模式,等同于 dx.d3d9
dx2 dx2 模式,用于窗口采用 dx 模式刷新
dx.d3d9 d3d9 模式,使用 d3d9 渲染
dx.d3d10 d3d10 模式,使用 d3d10 渲染
dx.d3d11 d3d11 模式,使用 d3d11 渲染
dx.d3d12 d3d12 模式,使用 d3d12 渲染
opengl opengl 模式,使用 opengl 渲染的窗口
opengl.std 测试中
opengl.nox opengl 模式,针对最新夜神模拟器的渲染方式,测试中...
opengl.es 测试中...
opengl.fi 测试中...

mouse

描述
normal 正常模式,平常我们用的前台鼠标模式
windows Windows 模式,采取模拟 windows 消息方式
dx dx 模式

dx 鼠标模式会向目标窗口注入输入 hook,适合部分 DirectInput / Raw Input 场景。目标程序如果做了更严格的输入过滤,仍然可能无法响应。

keypad

描述
normal 正常模式,平常我们用的前台键盘模式
normal.hd 硬件按键模式
windows Windows 模式,采取模拟 windows 消息方式
dx dx 模式

dx 键盘模式和 dx 鼠标模式共用同一套输入 hook。它可以补充 windows 模式无法触达的一些后台输入场景,但不等同于真实硬件输入。

返回值

类型:int

  • 0: 失败
  • 1: 成功

示例

// display: 前台 鼠标:前台键盘:前台 模式0
op_ret = op.BindWindow(hwnd,"normal","normal","normal",0)

// display: gdi 鼠标:前台 键盘:前台 模式1
op_ret = op.BindWindow(hwnd,"gdi","normal","normal",1)

BindWindowEx

扩展绑定接口,用于显示窗口和输入窗口不是同一个句柄的场景,取值与上述相同。

long BindWindowEx(display_hwnd,input_hwnd,display,mouse,keypad,mode)
参数 类型 描述
display_hwnd int 显示窗口句柄,用于截图、取色、找图等显示相关操作
input_hwnd int 输入窗口句柄,用于鼠标和键盘模拟
display string 屏幕显示模式
mouse string 鼠标仿真模式
keypad string 键盘仿真模式
mode int 模式,取值 0、1

返回值

类型:int

  • 0: 失败
  • 1: 成功

示例

// 截图取父窗口,输入发给子窗口
op_ret = op.BindWindowEx(parent_hwnd,child_hwnd,"normal","windows","windows",0)

说明:BindWindow 等同于显示窗口和输入窗口都传同一个句柄。遇到嵌套窗口、模拟器、浏览器控件时,如果截图区域和实际接收键鼠的窗口不是同一个,可以使用 BindWindowEx 分开指定。

UnBindWindow

解除绑定窗口,并释放系统资源

long UnBindWindow()

返回值

类型:int

  • 0: 失败
  • 1: 成功

示例

op_ret = op.UnBindWindow()

GetBindWindow

获取当前对象已经绑定的窗口句柄. 无绑定返回:0

long GetBindWindow()

返回值

类型:int

  • 0: 没有绑定窗口

示例

op_ret = op.GetBindWindow()

IsBind

该函数旨在判断当前对象是否已绑定窗口

long IsBind()

返回值

类型:int

  • 0: 表示未绑定状态
  • 1: 表示已绑定状态

示例

op_ret = op.IsBind()

Clone this wiki locally