Windows 在 PsychoPy 中记录屏幕触摸开始的时间

Recording the time of the start of a screen touch in PsychoPy on Windows

我正在帮助在 Windows 8 平板电脑上使用 PsychoPy 实施一项实验。似乎无法通过 PsychoPy、pyglet 或 PyGame 接口直接访问触摸事件。

我发现的大多数其他来源都提到使用鼠标移动事件代替触摸事件。这对于记录位置很有效,但对于记录时间它对我们不起作用。我们想收集触摸开始的时间,而鼠标事件是在触摸结束时。

有谁知道在 PsychoPy 中或通过将另一个库导入实验来做到这一点的方法吗?

更新:记录ioHub鼠标事件,看起来按下和释放鼠标事件都是在触摸结束时发送的。这是有道理的,因为这是 OS 确定触摸不是滑动的点。 (此外,它会根据触摸的持续时间来决定触摸是左击还是右击)。

我已经使用 WndProc 的挂钩来管理它,它不是很漂亮,但它可以工作。后代的解决方案:

https://github.com/alisdt/pywmtouchhook

简要总结:

我使用了 ctypes 和 pywin32 的组合(遗憾的是两者都无法完成这项工作)来注册目标 HWND 以接收触摸消息,并替换其 WndProc,将所有非触摸消息传递给原始 WndProc。