(如何)我可以在Windows上模拟触摸事件吗?



我在C++编写的用于测试目的的实用程序目前使用SendInput函数来模拟用户输入,即鼠标和键盘事件。我现在想扩展我的程序,以便它能够模拟触摸事件,这样我就可以验证测试的程序是否处理例如 正确WM_TOUCH消息(尽管该消息已弃用,但我仍然想验证它是否正确处理)。我不需要能够将触摸事件发送到特定的HWND,只需将它们发送到桌面上的某些 X/Y 坐标就足以满足我的目的。

我考虑过将HARDWAREINPUT结构与SendInput一起使用,以及直接发送WM_TOUCH(或WM_GESTURE?)消息,但在这两种情况下,我都不清楚如何传递有关触摸事件执行的位置或方式的信息。

WM_TOUCH文档解释了lParam参数:

包含一个触摸输入句柄,该句柄可用于调用 GetTouchInputInfo 以检索有关与此消息关联的触摸点的详细信息。

。但目前尚不清楚我是否以及如何自己分配这样的"触摸输入手柄"。它是否始终只是当前进程地址空间中的普通指针?如果是这样,我应该对TOUCHINPUT结构的hSource字段使用什么值?

您可能正在寻找触摸注入。

最新更新