我正在帮助在Windows 8平板电脑上使用PsychoPy实施一项实验。似乎不可能通过PsychoPy或pyglet或PyGame接口直接访问触摸事件。
我发现的大多数其他资源都提到使用鼠标移动事件代替触摸事件。这适用于录制位置,但对于录制时间,它对我们不起作用。我们想收集触摸开始的时间,而鼠标事件在触摸结束时出现。
有没有人知道如何做到这一点,无论是在PsychoPy还是将另一个库导入实验?
更新:记录ioHub鼠标事件,看起来按下并释放鼠标事件都是在触摸结束时发送的。这是有道理的,因为这是操作系统确定触摸不是滑动的点。 (此外,它将决定触摸是左键还是右键,具体取决于触摸的持续时间。)
答案 0 :(得分:1)
我使用钩子进入WndProc管理它,它不漂亮但它有效。解决方案,为子孙后代:
https://github.com/alisdt/pywmtouchhook
简要总结:
我使用了ctypes和pywin32的组合(不幸的是,既不能单独完成这项工作)来注册目标HWND以接收触摸消息,并替换其WndProc,将所有非触摸消息传递给原始WndProc。