控制方式说明
本文档详细说明 MaaFramework 中 Screencap(截图)和 Input(控制)的各种方式及其配置。
TIP
- 对于 API ,screencap/input 使用
int类型(按位或组合);对于 ProjectInterface V2,使用string类型(直接使用名称)。 - ProjectInterface V2 仅支持配置 Win32 控制器的 screencap/mouse/keyboard 方式。Adb 控制器的 screencap/input 使用
MaaToolkitAdbDeviceFind自动检测和选择最优方式,无需手动配置。
Adb
Adb Input
参考 MaaDef.h
将下面选择的方式 按位或 合并为一个值提供。MaaFramework 将会按照固定优先级顺序尝试所有提供的方式,选择首个可用方式。
默认尝试除 EmulatorExtras 外所有方式。
优先级: EmulatorExtras > Maatouch > MinitouchAndAdbKey > AdbShell
| 名称 | API 值 | 速度 | 兼容性 | 说明 |
|---|---|---|---|---|
| AdbShell | 1 | 慢 | 高 | |
| MinitouchAndAdbKey | 2 | 快 | 中 | 按键仍使用 AdbShell |
| Maatouch | 4 | 快 | 中 | |
| EmulatorExtras | 8 | 快 | 低 | 仅支持模拟器:MuMu 12 |
Adb Screencap
参考 MaaDef.h
将下面选择的方式 按位或 合并为一个值提供。MaaFramework 将会尝试所有提供的方式,选择最快的可用方式。
默认尝试除 RawByNetcat,MinicapDirect,MinicapStream 外所有方式。
MinicapDirect 和 MinicapStream 由于会编码为 jpg,为有损编码,将显著降低模板匹配的效果,不建议使用。
| 名称 | API 值 | 速度 | 兼容性 | 编码 | 说明 |
|---|---|---|---|---|---|
| EncodeToFileAndPull | 1 | 慢 | 高 | 无损 | |
| Encode | 2 | 慢 | 高 | 无损 | |
| RawWithGzip | 4 | 中 | 高 | 无损 | |
| RawByNetcat | 8 | 快 | 低 | 无损 | |
| MinicapDirect | 16 | 快 | 低 | 有损 | |
| MinicapStream | 32 | 极快 | 低 | 有损 | |
| EmulatorExtras | 64 | 极快 | 低 | 无损 | 仅支持模拟器:MuMu 12、雷电 9 |
Win32
Win32 Input
参考 MaaDef.h
选择下面的值提供。
无默认值。Client 可以选择一个作为默认值。
Win32 下不同程序处理输入的方法不同,不存在一个通用方式。
| 名称 | API 值 | 兼容性 | 需管理员权限 | 抢占鼠标 | 支持后台 | 说明 |
|---|---|---|---|---|---|---|
| Seize | 1 | 高 | 否 | 是 | 否 | |
| SendMessage | 2 | 中 | 可能 | 否 | 是 | |
| PostMessage | 4 | 中 | 可能 | 否 | 是 | |
| LegacyEvent | 8 | 低 | 否 | 是 | 否 | |
| PostThreadMessage | 16 | 低 | 可能 | 否 | 是 | |
| SendMessageWithCursorPos | 32 | 中 | 可能 | 短暂 | 是 | 专为原神等检测实际鼠标位置的游戏设计 |
| PostMessageWithCursorPos | 64 | 中 | 可能 | 短暂 | 是 | 专为原神等检测实际鼠标位置的游戏设计 |
NOTE
- 管理员权限主要取决于目标程序的权限级别,若目标程序为管理员权限,则需以管理员权限运行以保证兼容性。
WithCursorPos系列方式会短暂移动光标到目标位置,发送完消息后会将光标移回原位置,因此会“短暂”抢占鼠标,但不会阻止用户操作。
Win32 Screencap
参考 MaaDef.h
选择下面的值提供。
无默认值。Client 可以选择一个作为默认值。
Win32 下不同程序处理绘制的方法不同,不存在一个通用方式。
| 名称 | API 值 | 速度 | 兼容性 | 需管理员权限 | 支持后台 | 说明 |
|---|---|---|---|---|---|---|
| GDI | 1 | 快 | 中 | 否 | 否 | |
| FramePool | 2 | 极快 | 中 | 否 | 是 | Windows 10 1903+ 可用 |
| DXGI_DesktopDup | 4 | 极快 | 低 | 否 | 否 | 桌面复制(全屏输出复制) |
| DXGI_DesktopDup_Window | 8 | 极快 | 低 | 否 | 否 | 桌面复制后裁剪 |
| PrintWindow | 16 | 中 | 中 | 否 | 是 | |
| ScreenDC | 32 | 快 | 高 | 否 | 否 |
NOTE
Windows 在窗口最小化后会停止绘制该窗口内容,所有截图方式均无法获取有效内容,请避免窗口最小化。
