c++ - 使用 SendInput API 的最佳实践

标签 c++ winapi sendinput

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

最佳答案

据我所知,一种技术与另一种技术相比并没有真正的好处。在任何一种情况下,SendInput 的常见潜在问题是输入焦点可能会在您发送输入和目标应用程序接收输入之间发生变化。典型的例子是一个异步出现的模态对话框提醒用户一些问题,并最终窃取焦点,并吸收了应该去别处的剩余输入。在这种情况下,执行一系列连续的 SendInput 与执行单个 SendInput 之间没有区别。

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

关于c++ - 使用 SendInput API 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184493/

相关文章:

c++ - 简单的winapi旋转控件

c# - SendInput 额外信息/标志

c++ - 无法创建addressbook.pb.h对象(从protoc构建)

c++ - 使用包中工作空间导入的线性代数库Eigen

c++ - 从管道读取输入时出现 scanf 问题

c++ - DeviceContext (HDC) 中的 Alpha channel

C++ CMenu 绘图不正确(非自定义)

delphi - Windows Server 2003 和 Windows7 中的 MessageBox 外观

c++ - 无论用户安装或使用什么布局,如何使 SendInput 使用固定(en-US)布局?

c++ - SendInput On C++ 不显示下划线