-
Notifications
You must be signed in to change notification settings - Fork 256
background
qiannian edited this page Jul 1, 2026
·
11 revisions
后台
- BindWindow: 绑定窗口
- BindWindowEx: 扩展绑定窗口
- UnBindWindow: 解除绑定窗口
- IsBind: 判断当前对象是否已绑定窗口
- GetBindWindow: 获取当前对象已经绑定的窗口句柄
绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定.
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)扩展绑定接口,用于显示窗口和输入窗口不是同一个句柄的场景,取值与上述相同。
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 分开指定。
解除绑定窗口,并释放系统资源
long UnBindWindow()返回值
类型:int
- 0: 失败
- 1: 成功
示例
op_ret = op.UnBindWindow()获取当前对象已经绑定的窗口句柄. 无绑定返回:0
long GetBindWindow()返回值
类型:int
- 0: 没有绑定窗口
示例
op_ret = op.GetBindWindow()该函数旨在判断当前对象是否已绑定窗口
long IsBind()返回值
类型:int
- 0: 表示未绑定状态
- 1: 表示已绑定状态
示例
op_ret = op.IsBind()