如何拦截在Windows 8的触摸输入(How to Intercept touch input o

2019-09-02 16:07发布

我写的Windows 8桌面应用程序,并希望它当用户点击与(例如)4个手指放在屏幕上弹出。 我发现这个问题:

如何检测轻敲(触摸输入)而不是全球的鼠标点击?

答案提供3个解决方案。 第一个是我不好,因为我想编写应用程序,每个Win8平板的作品。

第二个(RegisterPointerInputTarget)做工精良(我的应用程序拦截所有可能的触摸输入,即使在启动面板被激活或地铁应用程序正在运行),但Windows本身开始缺乏一些触摸功能(例如,我不能滚动启动面板用手指了)。 我试图注入触摸输入回来,但没有运气可言:

if (message >= 0x0241 && message <= 0x024F)
{
    DWORD pointerID = LOWORD (wParam);
    POINTER_TOUCH_INFO pti;

    GetPointerTouchInfo (pointerID, &pti);
    InjectTouchInput (1, &pti);
}

(是的,我已经叫InitializeTouchInjection(10,0x3);前)另外,我个人并不因为文档说,只是一个窗口本身的指针输入寄存器喜欢这种方式。 所以,我不希望我的应用程序占据这样的资源。

第三种解决方案(挂钩)的作品不错,但我不能从metro应用或启动面板拦截触摸。

有谁知道如何正确地拦截在Windows 8的所有触摸输入? uiAccess =真不是一个问题,因为我的应用程序将被签署。 谢谢。

文章来源: How to Intercept touch input on Windows 8