You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows平台如何拦截被应用吸收的触控笔事件并区分鼠标与触控笔输入

全局触控笔输入捕获解决方案

你遇到的问题本质是Chrome、Edge、VSCode等应用主动开启了原生指针输入处理,系统不会再将这类应用窗口内的触控笔输入模拟为鼠标事件,因此原有WH_MOUSE_LL低级鼠标钩子无法捕获对应事件。

核心解决方法

使用Windows原生的全局低级指针钩子替换原有的鼠标钩子:

  • 调用SetWindowsHookEx(WH_POINTER_LL, 钩子回调函数, 当前进程实例句柄, 0)注册全局指针输入钩子,该钩子可以捕获全系统所有指针类输入事件,覆盖鼠标、触控笔、触控板等所有输入设备
  • 在钩子回调的参数中解析POINTER_INFO结构体,通过pointerType字段直接区分输入设备类型:
    • 值为PT_POINTERPEN时,输入来自触控笔
    • 值为PT_POINTERMOUSE时,输入来自普通鼠标
  • 识别到对应输入类型后,直接复用原有业务逻辑即可

兼容说明

  • 该钩子仅支持Windows 8及以上系统,匹配你使用Windows 10的场景,和原有低级鼠标钩子的权限要求一致,不需要额外申请管理员权限
  • 你原有的通过MSLLHOOKSTRUCT.dwExtraInfo == 0xFF515712判断触控笔的逻辑可以保留,和指针类型判断做双重校验,提升识别准确率

注意事项

钩子回调的处理逻辑要尽可能精简,不要执行耗时操作,避免处理超时导致系统自动卸载你的全局钩子。

内容的提问来源于stack exchange,提问作者ladofa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:18:03