- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Windows 10 上使用 InjectTouchInput()
API 从单独的数字转换器注入(inject)触摸事件。这很好用(多点触控等)。有很多为此使用 API 的示例,即使用指针类型 PT_TOUCH
,包括一个 from Microsoft。 ,因此根据我的需要自定义它们并不难。
但是,我还没有找到任何使用其他指针类型的示例,尤其是 PT_PEN
- 当数字转换器给我笔输入时我需要它。 (我也对 PT_MOUSE
感兴趣,主要是为了避免必须使用 SendInput()
或 mouse_event()
。)
每当我使用 PT_PEN
调用 InjectTouchInput()
时,它都会失败并返回 ERROR_INVALID_PARAMETER
。我已经尝试了很多字段组合来设置,但(到目前为止)没有任何效果。 MSDN文档没有描述PT_PEN
要做什么(它没有描述太多PT_TOUCH
,但至少有一个示例),所以很难知道哪些字段应该被设置,哪些字段应该被忽略,任何特定的操作顺序等等。我一直在网上搜索,但找不到任何例子PT_PEN
使用。
是否有人有示例代码或知道在哪里可以找到任何示例代码、有用文档位于何处的知识,或者知道 InjectTouchInput()
应该如何用于 PT_PEN
(和 PT_MOUSE
)?
最佳答案
事实证明InjectTouchInput()
确实仅适用于触摸输入 - 不适用于笔、鼠标或通用指针。
你可能会说这很明显,因为你传递了一个 POINTER_TOUCH_INFO
的数组API 的条目,但由于 POINTER_TOUCH_INFO
的文档而引起混淆(以及所有后续文档)描述的内容主要是从解释他给出的内容的人那里看到的,而不是他试图设置的内容,和 POINTER_INFO
(POINTER_TOUCH_INFO
中的第一个元素)可以指定 PT_POINTER
的指针类型, PT_TOUCH
, PT_PEN
, PT_MOUSE
, 或 PT_TOUCHPAD
,所以很自然地会想到“等等,我可以注入(inject)所有这些不同类型的指针!”
当然,所有指针类型,尽管有 POINTER_INFO
通常,采用略有不同的参数。例如,有 orientation
和 pressure
对于 PT_TOUCH
(在 POINTER_TOUCH_INFO
中),但是 tiltX
, tiltY
, rotation
, 和 pressure
对于 PT_PEN
(在 POINTER_PEN_INFO
中);但由于指针类型始终是结构中的第一个字段,因此很容易确定哪些信息是相关的。
可以InjectTouchInput()
拿POINTER_PEN_INFO
条目而不是 POINTER_TOUCH_INFO
那些?不,它不能 - 我试过了,以防万一它会起作用。
Microsoft 似乎错失了从一开始就使 API 更加通用并接受所有支持的指针类型,而不是仅限于触摸输入的机会。至少,笔式注入(inject)应该很简单,因为有一个 POINTER_PEN_INFO
。结构(除了 POINTER_TOUCH_INFO
之外,我还没有找到其他指针类型的结构)。
中途 this thread从 2014 年开始提到“没有用于笔式注入(inject)的 [...] API”,此后情况没有改善,因此仍然需要用于笔式注入(inject)的驱动程序。话虽如此,Windows UI Automation API 显然可以注入(inject)所有指针类型(以及用于启动的游戏 handle ),但这仅在 Windows 10 周年纪念版中受支持(我还没有尝试过)。
关于c++ - 如何在 Windows 10 上使用带有 PT_PEN 的 InjectTouchInput() 从数字转换器注入(inject)笔输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45508931/
我是一名优秀的程序员,十分优秀!