跳至内容

光标捕获模式

提示

请查看 InputTip 使用教程 - Bilibili 中的相关内容

GUI

  • 通过 Windows 系统的 GetGUIThreadInfo API 获取光标位置
  • 它是最基础、兼容性最好的方式

UIA

信息

实际使用中,GUI>UIA 在部分特殊场景中有奇效,可以尝试

  • 通过 Windows UI Automation 接口获取光标位置
  • 适用于支持 UIA 的现代应用

HOOK

  • 向进程注入代码,在进程内部调用 GetCaretPos 获取光标位置后,再通过自定义消息传回
  • 适用于 GUIUIA 模式均无法获取的场景

HOOK_DLL

  • HOOK 的基础上,额外发送 WM_IME_COMPOSITION 消息来触发光标位置更新后再读取
  • 请注意,它对 32 位应用进程和 Win10 可能存在一些兼容性问题

MSAA

  • 通过 Microsoft Active Accessibility 接口(oleacc.dll)获取光标位置
  • 适用于支持 MSAA 的较旧应用

WPF

  • 通过 UI Automation 接口在焦点元素的子元素树中查找 WpfCaret 元素并读取其位置
  • 适用于 WPF 框架应用

ACC

  • MSAA 同样基于 oleacc.dll,但直接从当前活动窗口(而非通过线程)获取光标对象
  • 适用于部分 MSAA 无法覆盖的应用

JAB