使用SendInput API的最佳实践

Best practices for using the SendInput API

本文关键字:最佳 SendInput API 使用      更新时间:2023-10-16

我正在研究一个自动化测试库,并希望使用SendInput Win32 API模拟鼠标和键盘输入。该API允许在对API的一次调用中推送多个输入项。在整个网络中还有许多使用SendInput的其他示例和类似的库。它们中的许多为每个API调用传递一个输入操作。批处理输入或每次调用SendInput使用单个输入有什么好处吗?文档似乎没有提供指导,或者可能是我误读了。

就我所知,一种技术与另一种技术相比并没有真正的好处。在这两种情况下,SendInput通常存在的潜在问题是,在发送输入和目标应用程序接收输入之间,输入焦点可能发生变化。典型的例子是,模态对话框以异步方式出现,提醒用户注意某些问题,但最终却转移了用户的注意力,并吸收了本应转移到其他地方的剩余输入。在这种情况下,执行连续的SendInput系列与单个SendInput之间没有区别。

(我很确定在内部,SendInput只是循环传递给它的输入…)