ali*_*sdt 5 python windows touchscreen psychopy
我正在帮助在 Windows 8 平板电脑上使用 PsychoPy 实施实验。似乎不可能通过 PsychoPy、pyglet 或 PyGame 接口直接访问触摸事件。
我发现的大多数其他来源都提到使用鼠标移动事件代替触摸事件。这对于记录位置来说效果很好,但是对于记录时间来说,它对我们不起作用。我们希望收集触摸开始的时间,而鼠标事件发生在触摸结束时。
有谁知道如何做到这一点,无论是在 PsychoPy 中还是通过将另一个库导入到实验中?
更新:记录 ioHub 鼠标事件,看起来按下和释放鼠标事件都是在触摸结束时发送的。这是有道理的,因为这是操作系统确定触摸不是滑动的点。(此外,它还会根据触摸的持续时间来决定触摸是左键单击还是右键单击)。
我已经使用 WndProc 中的挂钩来管理此操作,它不太漂亮,但它可以工作。为后代提供的解决方案:
https://github.com/alisdt/pywmtouchhook
简要总结:
我使用了 ctypes 和 pywin32 的组合(不幸的是,两者都无法完成这项工作)来注册目标 HWND 以接收触摸消息,并替换其 WndProc,将所有非触摸消息传递到原始 WndProc。