在 Windows 8 的 AutoHotkey 中检测触摸屏按下

bdr*_*dr9 6 autohotkey touchscreen windows-8

我使用的是运行 Windows 8.1 32 位的 Dell Venue 8 Pro。我正在尝试使用 AutoHotkey 将屏幕的某些区域映射到键盘上的某些按钮,以便能够使用触摸屏来控制某个已经存在的弹球游戏。我的目标是在触摸屏幕的左半部分时按 A,然后按右半部分的 B(屏幕分辨率设置为 640x480)。这是我写的脚本:

~LButton::
MouseGetPos, x,y
if (x > 0 and x < 320)
    Send {A}
if (x > 320 and x < 640)
    Send {B}
return
Run Code Online (Sandbox Code Playgroud)

但是,它似乎根本无法识别触摸屏按压。似乎触摸屏按压与普通鼠标点击不同。如何使用 AutoHotkey 识别触摸屏按键,或者是否有其他解决方案可以解决我的问题?

编辑:我开始认为 AutoHotkey 无法在这里完成我想要完成的工作。如果有人能找到产生相同结果的替代方法(触摸屏幕区域时按下键盘按钮),我会接受答案。

har*_*ymc 2

在 AutoHotkey 愿望清单主题 多手指触摸手势中,AutoHotkey 主要开发人员 lexikos 在 2013 年 9 月 30 日这样说道:

我没有 Windows 平板电脑或触摸屏,也没有兴趣购买或开发触摸输入功能。

除此之外,据我所知,Windows 8 确实会发送触摸屏的鼠标事件,尽管它们会被延迟,直到 Windows 确定它们不是手势。

这个stackoverflow 线程说:

我注意到 Windows 7 的触摸屏界面有一个可以阻止 mousedown 事件的东西。由于“点击并按住右键”手势,Windows 7 实际上不会向应用程序发送鼠标按下事件,直到:

  • 用户“触摸”(触摸时抬起手指,此时向下和向上都会被发送)
  • 移动手指(此时单击变为拖动)
  • 或者右键单击圆圈手势超时(大约 5-6 秒后)

您的应用程序需要适应这些限制,尤其是 MouseGetPos 在用户以明显(对于 Windows)不是手势的方式抬起或移动手指之前无法工作。

实际上,MouseGetPos 在触摸屏上可能无法很好地工作。