在 Windows 10 中,如何使用钩子检测触摸输入事件?
How can I detect touch input events using hooks, in Windows 10?
我无法弄清楚如何使用 hooks 检测触摸屏显示器上任意位置的触摸事件。这可能吗?
这可能不是您要查找的内容,但有几种设置挂钩的方法:
- SetWinEventHook(活动辅助功能挂钩)。优点:是一种受支持的从 Windows 获取事件的高级方法。缺点:会降低应用程序的速度,尤其是当您 运行 是 "out of context" 挂钩时。
- 设置WindowsHookEx。优点:非常低级别的连接到应用程序。缺点:不支持上下文挂钩,因此您需要编写自己的 IPC,而且有时也不可靠(例如,有时您会错过命令提示符中的事件)。
浏览第一个 API 我没有看到任何特定于触摸的内容(尽管我鼓励您获取最新的 Windows SDK 并查看不同的事件)。但是,您可以简单地查找光标位置变化以了解用户最近触摸的位置。
第二个 API 可能会给您想要的控制类型,因为您可以使用 WH_CALLWNDPROC 挂钩来捕获触摸事件。但是话又说回来,如果 window 将自己标记为可感知触摸,则它们只会接收与触摸相关的消息。所以即使这样也可能达不到你想要的效果。
我无法弄清楚如何使用 hooks 检测触摸屏显示器上任意位置的触摸事件。这可能吗?
这可能不是您要查找的内容,但有几种设置挂钩的方法:
- SetWinEventHook(活动辅助功能挂钩)。优点:是一种受支持的从 Windows 获取事件的高级方法。缺点:会降低应用程序的速度,尤其是当您 运行 是 "out of context" 挂钩时。
- 设置WindowsHookEx。优点:非常低级别的连接到应用程序。缺点:不支持上下文挂钩,因此您需要编写自己的 IPC,而且有时也不可靠(例如,有时您会错过命令提示符中的事件)。
浏览第一个 API 我没有看到任何特定于触摸的内容(尽管我鼓励您获取最新的 Windows SDK 并查看不同的事件)。但是,您可以简单地查找光标位置变化以了解用户最近触摸的位置。
第二个 API 可能会给您想要的控制类型,因为您可以使用 WH_CALLWNDPROC 挂钩来捕获触摸事件。但是话又说回来,如果 window 将自己标记为可感知触摸,则它们只会接收与触摸相关的消息。所以即使这样也可能达不到你想要的效果。